我尝试访问Info.plist
内存储的值,第二行root = NSDictionary...
失败。
但我可以这样做打开我的其他文件Common.plist
。
if let path = Bundle.main.path(forResource: "Info", ofType: "plist"),
let root = NSDictionary(contentsOfFile: path) as? [String: String] {
为什么我在打开Info.plist
时遇到问题?
答案 0 :(得分:4)
Info.plist
不是[String:String]
。它可以包括任何符合属性列表的类型。
但是有一个非常方便的快捷方式
let root = Bundle.main.infoDictionary
返回[String:Any]
答案 1 :(得分:1)
Info.plist文件的内容不仅包括String:String值,还包括String:Number等。所以String:AnyObject应该可以工作。
答案 2 :(得分:0)
看看你的Info.plist
。存储了各种各样的东西 - 不只是String
。如果您更改为let root = NSDictionary(contentsOfFile: path) as? [String: Any]
,您将开始通过该检查。
答案 3 :(得分:0)
你可以这样取:
func fetchData(){
if let path = Bundle.main.path(forResource: "YourPlistName", ofType: "plist") {
if let dicObj = NSDictionary(contentsOfFile: path) as? [String: Any] {
}
}
}