【问题标题】:Advanced search using enumerateChildNodesWithName method使用 enumerateChildNodesWithName 方法的高级搜索
【发布时间】:2016-04-14 11:21:16
【问题描述】:

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

来自关于使用这个 pattern 作为搜索字符串的文档:

这个搜索字符串匹配任何当前节点的子节点 命名为 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] 符号,可以这样做吗?

【问题讨论】:

  • 我猜它或多或少是正则表达式符号,而不是下限/上限
  • 我不认为 [0-9] 是“下界-上界”,而只是“0-9 的单个字符”。不确定搜索的高级程度,
  • 你能把你的精灵重命名为 A01-A20 并尝试 A[0-2][1-9] 吗?
  • @SteveIves 尝试了类似的方法,但我也可以尝试...文档没有详细介绍 advanced search 的这个特定示例,是的,它似乎并不那么先进。目前尚不清楚这是否是某种正则表达式,如 zcui93 所说(如果是,如何使用它)。或者如果不是,那么再次,如何使用它(以及有哪些可能性)......
  • 确实缺少文档 - 我记得您对我的问题的回答(//. 搜索场景中的每个节点,这有效,但从描述中看不合逻辑)

标签: ios swift sprite-kit enumeration sknode


【解决方案1】:

将您的精灵命名为A01-A20 并尝试A[0-2][1-9]

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    相关资源
    最近更新 更多