使用 enumerateChildNodesWithName 方法进行高级搜索
Advanced search using enumerateChildNodesWithName method
我有十个精灵(A0、A2...A9 精灵),我正在使用下一个搜索字符串 A[0-9]
枚举它们的父级 (myNode
) 以匹配名为 A0 的精灵, A1...A9.
来自关于使用此 模式 作为搜索字符串的文档:
This search string matches any of the current node’s children that are
named 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]
符号可以做些什么?
将您的精灵命名为 A01-A20
并尝试 A[0-2][1-9]
编辑:看起来搜索参数实际上是一个正则表达式。来自函数的声明:
name An Xpath style path that can include simple regular expressions
for matching node names.
所以 ^A[0-9]{1,2}$ 将匹配 'A' 后跟一位或两位数字作为完整的节点名称。
我有十个精灵(A0、A2...A9 精灵),我正在使用下一个搜索字符串 A[0-9]
枚举它们的父级 (myNode
) 以匹配名为 A0 的精灵, A1...A9.
来自关于使用此 模式 作为搜索字符串的文档:
This search string matches any of the current node’s children that are named 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]
符号可以做些什么?
将您的精灵命名为 A01-A20
并尝试 A[0-2][1-9]
编辑:看起来搜索参数实际上是一个正则表达式。来自函数的声明:
name An Xpath style path that can include simple regular expressions for matching node names.
所以 ^A[0-9]{1,2}$ 将匹配 'A' 后跟一位或两位数字作为完整的节点名称。