为什么我无法从plist中读取数据?

时间:2015-11-04 02:10:50

标签: ios swift plist

enter image description here
这是我的代码的一部分。但myDictnil。文件名是对的。我已经多次检查了。

var myDict: NSDictionary?
    if let path = NSBundle.mainBundle().pathForResource("CatData", ofType: "plist") {
        myDict = NSDictionary(contentsOfFile: path)
    }
    if let dict = myDict {
        print("print something")
    }

2 个答案:

答案 0 :(得分:3)

你的plist是字典数组所以试试

    var myArray: NSArray?
    if let path = NSBundle.mainBundle().pathForResource("Categories", ofType: "plist") {
        myArray = NSArray(contentsOfFile: path)
    }
    if let array = myArray {
        for item: AnyObject in array {
            if let item = item as? NSDictionary {
                if let categoryTitle = item["CategoryTitle"] as? NSString {
                    print("categoryTitle = ", categoryTitle)
                }
                if let imageNames = item["ImageNames"] as? NSArray {
                    print("imageNames = ", imageNames)
                }
            }
        }
    }

答案 1 :(得分:0)

提供您的文件名是正确的,并且您的plist已添加到捆绑包中:

您需要确保您的文件是您期望的类型。

例如。你的plist的根是一个数组,你正在寻找一个字典。

所以让我们重写你的代码:

var myArray: Array? {
    if let path = NSBundle.mainBundle().pathForResource("CatData", ofType: "plist") {
        myArray = NSArray(contentsOfFile: path) as! [[String:AnyObject]]
    } 
    if let array = myArray {
        print("print something")
    }
}