2017-03-06 36 views
0

我有這樣的代碼(他老2.3使用的NSDictionary我相信,雖然我有固定的第1000個轉換的問題後,讓輕度混亂的版本):斯威夫特3 - 聲明不再允許

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

Xcode中聲稱錯誤

nil無法初始化指定的Dictionary?

,並建議使用Dicionary??

任何人都可以解釋爲什麼正本報關不再起作用?如果需要轉換,最好的方法是什麼

回答

5

你已經說過它是什麼樣的字典,也就是說,指定它的鍵的類型和它的值的類型,例如, [String:String]?[String:Any]?或類似的。

最多一般可能的類型,對應於一個可爲空的NSDictionary,將是[AnyHashable:Any]?。但最好儘可能爲特定

+0

謝謝。我現在已經包含了更多的代碼。我將嘗試將代碼修復爲「var attr_opt:[FileAttributeKey:Any]?= nil;」 – Tom