Xcode 8.0 beta(8S128d) iOS 10
我正在尝试从SKTileDefinition检索userData但无法获取任何返回数据。
我可以使用以下代码检索名称 -
if let tileType = landBackground.tileDefinition(atColumn: column, row: row) {
tileDef = tileType.name!
} else {
tileDef = "Nil"
}
但是当我尝试使用以下代码检索userData时,我得到nil -
if let tileType = landBackground.tileDefinition(atColumn: column, row: row) {
if let data = tileType.userData?.value(forKey: "data") {
tileDef = String(data)
} else {
tileDef = "no string data"
}
} else {
tileDef = "Nil"
}
我确认已为我要返回的图块设置了userData。
有没有人设法让这个功能在Xcode 8.0中运行?
答案 0 :(得分:0)
您需要确保初始化NSMutableDictionary并将其分配给userData属性,而不是仅尝试将值直接分配给userData。
以下是一个例子:
将数据分配给字典,然后分配给图块定义。
let dict:NSMutableDictionary = ["data":"someData"]
let tileDef = tileMap.tileDefinition(atColumn: 0, row: 0)!
tileDef.userData = dict
要读取值,您可以直接调用如下。
let tileDef = tileMap.tileDefinition(atColumn: 0, row: 0)!
let data = tileDef.userData?.value(forKey: "data")
注意:此示例不提供任何纠错结构,仅用于演示概念。