更新到 xCode 6.3 / Swift 1.2 后,我遇到了一个我无法解决的错误:“从 '[SKNode]' 转换为不相关的类型 'String' 总是失败”。
下面是我的 GameScene 代码,它从解析 p 列表开始。
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate, NSXMLParserDelegate {
var currentTMXFile:String?
override func didMoveToView(view: SKView) {
/* Parse p-list */
let path = NSBundle.mainBundle().pathForResource("GameData", ofType: "plist")
let dict = NSDictionary(contentsOfFile: path!)!
let playerDict:AnyObject = dict.objectForKey("PlayerSettings")!
let gameDict:AnyObject = dict.objectForKey("GameSettings")!
let levelArray:AnyObject = dict.objectForKey("LevelSettings")!
if let levelNSArray:NSArray = levelArray as? NSArray {
var levelDict:AnyObject = levelNSArray[level]
numberOfLevels = levelNSArray.count
if let tmxFile = levelDict["TMXFile"] as? String {
currentTMXFile = tmxFile
}
}
错误被抛出...
if let tmxFile = levelDict["TMXFile"] as? String {...
并且返回一个 nil 值,即使 p-list 中有一个字符串值并且在更新之前,它工作正常。我首先尝试将其转换为 AnyObject,但这会引发更多错误。