Swift标签文本似乎是它自己的节点

时间:2014-08-12 20:34:02

标签: swift optional

我正在构建一个SpriteKit游戏,其中玩家在场景中拖动一个检查器。我使用nodesAtPoint来确定此检查器遇到的其他节点,并查找各种SKNode.name值以确定要触发的行为。但是,“nil”一直显示在我的节点阵列中并且故障排除帮助我确定显示为“nil”的节点实际上是SKLabelNode的文本。标签节点的名称为“label”,它在数组中作为与标签文本分开的单独元素。所以我认为我有两个选择:

  1. 将文本命名为“node”(我看不到该怎么做)
  2. 使node.name字符串可选,并忽略nil值。
  3. 我尝试了后者:

        for node in nodesArray {
            if let nodeName: String = node.name {
                if nodeName.hasSuffix("dropZone") == true {
                    println("drop zone encountered")
                }
            }
    
        }
    

    但是,我没有让这个工作得很好。我收到错误“致命错误:在展开Optional值时意外发现nil”。我做错了什么?

1 个答案:

答案 0 :(得分:0)

这对我有用:

           if let nodeName: String? = node.name {
                if let tempNodeName = nodeName {
                    if tempNodeName.hasSuffix("dropZone") == true {
                        // code goes here
                    }

                }
            }

基本上我没有添加'?'在第一行的String之后。