我正在构建一个SpriteKit游戏,其中玩家在场景中拖动一个检查器。我使用nodesAtPoint来确定此检查器遇到的其他节点,并查找各种SKNode.name值以确定要触发的行为。但是,“nil”一直显示在我的节点阵列中并且故障排除帮助我确定显示为“nil”的节点实际上是SKLabelNode的文本。标签节点的名称为“label”,它在数组中作为与标签文本分开的单独元素。所以我认为我有两个选择:
我尝试了后者:
for node in nodesArray {
if let nodeName: String = node.name {
if nodeName.hasSuffix("dropZone") == true {
println("drop zone encountered")
}
}
}
但是,我没有让这个工作得很好。我收到错误“致命错误:在展开Optional值时意外发现nil”。我做错了什么?
答案 0 :(得分:0)
这对我有用:
if let nodeName: String? = node.name {
if let tempNodeName = nodeName {
if tempNodeName.hasSuffix("dropZone") == true {
// code goes here
}
}
}
基本上我没有添加'?'在第一行的String之后。