Swift 3 - 不再允许声明

时间:2017-03-06 21:51:35

标签: swift3

我有这个代码(他使用的是旧的2.3版本的NSDictionary我相信虽然在修复了前1000个转换问题后我感到有些困惑):

var attr_opt: Dictionary? = nil;
do { 
  attr_opt = try FMainFileManager.aributesOfItem(aPath: APath);
}
catch {
}

Xcode声称错误

  

nil无法初始化特定的词典?

并建议使用Dicionary??

任何人都可以解释为什么原始声明不再有效吗?什么是必要时转换的最佳方式

1 个答案:

答案 0 :(得分:5)

你已经说出它是什么类型的字典,即指定其键的类型及其值的类型,例如: [String:String]?[String:Any]?或类似。

对应于可为空的NSDictionary的最通用可能类型将是[AnyHashable:Any]?。但最好是尽可能具体