我创建了一个包含整数作为键和字符串作为值的plist文件。现在我想用它创建一个字典:
let path = NSBundle.mainBundle().pathForResource("myPlist", ofType: "plist")
let dict = NSDictionary(contentsOfFile: path!) as [Int:String]
...但应用程序崩溃了。但是,如果我将它声明为[String:String]则可行。但我需要密钥作为int。
我在plist中找不到任何错误。
答案 0 :(得分:1)
在swift中没有从String
到Int
的隐式强制转换或转换,因此您必须通过声明新字典并通过for
循环插入元素来手动执行此操作:
var plist = [Int : String]()
for (key, value) in dict {
if let index = (key as? String)?.toInt() {
if let value = value as? String {
plist[index] = value
}
}
}
第一个if
确保密钥可以转换为Int
,而第二个检查该值实际上是String
。