使用enumerateChildNodesWithName方法进行高级搜索

时间:2016-04-14 11:21:17

标签: ios swift sprite-kit enumeration sknode

我有十个精灵(A0,A2 ... A9精灵),我使用下一个搜索字符串myNode枚举他们的父(A[0-9]),以匹配名为A0,A1的精灵。 ..A9。

从使用此模式作为搜索字符串的文档:

  

此搜索字符串匹配当前节点的所有子节点   名为A0,A1,...,A9。

以下是我使用的代码:

myNode.enumerateChildNodesWithName("A[0-9]") { sprite, stop in

     //do some stuff here    
}

这就像文档中所述的那样有效。但是,让我说我现在有20个精灵...当我试图匹配名为A1,A2,A3 ...... A20的精灵时,就像这样:

myNode.enumerateChildNodesWithName("A[0-20]") {...}

它没有用......我期待这个功能太多,或者我错过了什么?

我能够以几种不同的方式匹配所需的精灵,例如,将它们放在同一个容器中并枚举其中的所有精灵,但这不是重点,我想知道是否有某些东西可以这样做以便使用[lowerBound-upperBound]表示法吗?

1 个答案:

答案 0 :(得分:1)

为精灵命名A[0-2][1-9]并尝试{{1}}

编辑:看起来搜索参数实际上是一个正则表达式。从函数声明:

  

name Xpath样式路径,可包含简单的正则表达式   用于匹配节点名称。

所以^ A [0-9] {1,2} $将匹配'A',后跟一个或两个数字作为完整的节点名称。