【发布时间】:2014-06-20 20:26:02
【问题描述】:
我有一个 plist,我想在 Xcode 中以 Swift 字典的形式访问它。我可以将文件的内容定义为 NSDictionary 但每次我尝试从中访问特定的值/对象时,它都会显示错误“表达式不允许在顶层”。我已经使用自动完成尝试了括号表示法、类型转换和类方法(使用点表示法)。
我的 plist 包含字典,其中包含的字典包含带有 CGFloats 和字符串的字典。
我想访问实例的值。
这是我用来定义它的代码,它位于我的 GameScene.swift 的开头(它是一个 SpriteKit 游戏):
let levelBlocks = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("LevelBlocks", ofType: "plist"))
我希望能够做到:
levelBlocks["Level1"]
编辑:添加了更多信息。
我还尝试将它放在 ViewDidLoad()、init() 中,并在函数内部使用符合 Hashable 的泛型而不是 AnyObject/Any。我仍然无法访问字符串。
编辑 2:我在 ViewDidLoad() 中尝试过这个,它返回错误 254:
let levelBlocks = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("LevelBlocks", ofType: "plist")) as Dictionary<String, Dictionary<String, Dictionary<String, String>>>
let test = levelBlocks["Level1"] as Dictionary<String, Dictionary<String, String>>
let test1 = test["Block0"] as Dictionary<String, String>
let test2 = test1["color"] as String
println(test2)
【问题讨论】:
-
我们能看到更多周围的环境吗?也许这个代码嵌套的类?