创建一个NSDictionary作为Int:plist文件中的字符串

时间:2014-11-04 12:52:49

标签: dictionary swift plist

我创建了一个包含整数作为键字符串作为值的plist文件。现在我想用它创建一个字典:

let path = NSBundle.mainBundle().pathForResource("myPlist", ofType: "plist")
let dict = NSDictionary(contentsOfFile: path!) as [Int:String]

...但应用程序崩溃了。但是,如果我将它声明为[String:String]则可行。但我需要密钥作为int。

我在plist中找不到任何错误。 enter image description here

1 个答案:

答案 0 :(得分:1)

在swift中没有从StringInt的隐式强制转换或转换,因此您必须通过声明新字典并通过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