Ios 比较SKNode';s userData给出了一个错误
SKNode可以使用userData存储任意数据 我在两个节点上设置了属性“isEvil”。然后我想检查两个节点是否都是邪恶的Ios 比较SKNode';s userData给出了一个错误,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,SKNode可以使用userData存储任意数据 我在两个节点上设置了属性“isEvil”。然后我想检查两个节点是否都是邪恶的 var hero = SKNode() hero.userData = ["isEvil": false] var enemy = SKNode() enemy.userData = ["isEvil": true] if hero.userData!["isEvil"] == enemy.userData!["isEvil"] { println("the h
var hero = SKNode()
hero.userData = ["isEvil": false]
var enemy = SKNode()
enemy.userData = ["isEvil": true]
if hero.userData!["isEvil"] == enemy.userData!["isEvil"] {
println("the here and the enemy are equally evil!")
}
如果
行出现错误:类型“AnyObject?”不符合协议“\u RawOptionSetType”
我应该如何比较这些值?
根据,SKNode.userData是
NSMutableDictionary?
。因为它是可选的,所以我一定要使用打开这些值
userData
是一个NSMutableDictionary。这对我很有用:
if hero.userData!.objectForKey("isEvil") as Bool == enemy.userData!.objectForKey("isEvil") as Bool
编辑:正如@DonnyP所指出的,它可以写得更简单:
if hero.userData!["isEvil"] as Bool == enemy.userData!["isEvil"] as Bool
尝试此操作…如果未定义
isEvil
,如果userData
为nil
,和/或isEvil
不是Bool
,它将处理:
if hero.userData?["isEvil"] as? Bool == enemy.userData?["isEvil"] as? Bool {
println("the hero and the enemy are equally evil!")
}
知道
userData!之间的区别吗!。objectForKey(“isEvil”
)和刚刚的用户数据![“isEvil”]
?我也不知道有我。可能会有区别,也可能只是语法上的差异。