我正在开发一个 SpriteKit 项目,我的 SKSpriteNode 有一个简单的名称:
node.name = @"cat"
但是,当我尝试执行 [self childWithName"cat"] 时,我没有检索到我的对象。通过一些研究,我注意到有些人提到我应该这样做
[self childWithName"//cat"]
这行得通。我想知道“//”有什么作用?
Best Answer-推荐答案 strong>
它不会对所有 NSString 做特殊的事情,只是用于搜索节点树的字符串,它会递归搜索 self 的所有子节点。
来自文档:
When placed at the start of the search string, this [// ] specifies that the search should begin at the root node and be performed recursively across the entire node tree. It is not legal anywhere else in the search string.
例如,假设你有这个节点树:
scene
/ \
/ \
child1 child2
/ \ / \
/ \ / \
grandchild1 grandchild2 grandchild3 grandchild4
没有 // ,childNodeWithName: 只会找到 child1 或 child2 。使用 // ,它会找到 child1 , child2 , grandchild1 , grandchild2 , grandchild3 或 grandchild4 .
关于ios - @"//"在 childWithName 中做了什么以及何时使用它,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/30926691/
|