我是Swift的初学者,我遇到了这个问题:
给定名为" CrazyInformation.plist"的资源。位于主应用程序目录中,首先检索此资源的路径,并将该字符串分配给名为plistPath的常量。 获得plistPath后,创建一个包含plist内容的NSDictionary实例。
我正在尝试这个:
import Foundation
// Add your code below
var plistPath = NSBundle.mainBundle().pathForResource("CrazyInformation ",ofType: "plist")
var information = NSArray(contentsOfFile: plistPath)
但是,我收到了这个错误:
swift_lint.swift:7:43:错误:可选类型的值'字符串?'没有打开;你的意思是使用'!'或者'?'? var information = NSArray(contentsOfFile:plistPath)
我怎么能解开这个?
答案 0 :(得分:2)
pathForResource
的返回类型为String?
,即如果捆绑中没有此名称的文件,则可能返回零。
编写此代码的好方法是
if let plistPath = NSBundle.mainBundle().pathForResource("CrazyInformation", ofType: "plist") {
var information = NSArray(contentsOfFile: plistPath)
}
这将确保if条件中的代码仅在pathForResource
返回非零值时执行
答案 1 :(得分:1)
var plistPath = NSBundle.mainBundle().pathForResource("CrazyInformation ",ofType: "plist")!
查看更多选项here
答案 2 :(得分:0)
我认为错误是因为您使用NSArray但CrazzyInformation的类型是字典?我也是初学者,但我认为可能就是这样。尝试使用NSDictionary。