Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 比较SKNode';s userData给出了一个错误_Ios_Swift_Sprite Kit - Fatal编程技术网

Ios 比较SKNode';s userData给出了一个错误

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

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 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”]
?我也不知道有我。可能会有区别,也可能只是语法上的差异。