加载plist时在释放模式下崩溃

时间:2015-01-26 06:31:32

标签: ios cocoa swift

我使用以下代码从几个视图控制器中的plist中加载数据:

if let path = NSBundle.mainBundle().pathForResource("eBaySiteIDs", ofType: "plist") {

        if let dict = NSArray(contentsOfFile: path) as? Array<AnyObject> {
            // use swift dictionary as normal
            countryArray = dict as? [[String : AnyObject]]
        }
    }

这在调试模式下正常运行,但是一旦我为发布模式构建,应用程序在尝试访问countryArray时崩溃,说它是零。

有什么想法吗?

由于

修改

如果我尝试使用

记录数组
NSLog("\(NSArray(contentsOfFile: path))")

我得到了正确的值。

2 个答案:

答案 0 :(得分:0)

您的问题是,您尚未将资源添加到构建阶段。因此它可能在调试模式下工作,但在发布模式下,文件丢失。

因此,您必须将target下的Xcode Build Phases中的视频添加到Copy Bundle Resources

答案 1 :(得分:0)

解决。

出于某种原因,我需要将声明更改为:

if let dict : AnyObject = NSArray(contentsOfFile: path) {

}