SKNode可以有userData来存储任意数据。
我在两个SKNodes上设置了属性“isEvil”。然后我想检查两个节点是否都是邪恶的。
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!")
}
if
行给出一个错误:Type 'AnyObject?' does not conform to protocol '_RawOptionSetType'
。我该如何比较这些值?
根据docs,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
关于ios - 比较SKNode的userData会给出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27587177/