2015-06-18 44 views
2

我工作的一个项目SpriteKit和我SKSpriteNode有一个简单的名字:是什么@“//”做childWithName以及何时使用它

node.name = @"cat" 

但是,当我尝试做[self childWithName:@"cat"],我不检索我的对象。通过一些研究,我注意到一些人提到我应该做的

[self childWithName:@"//cat"] 

并且工作。我想知道“//”具有什么功能?

回答

4

它不会为所有NSString s做特殊的事情,只是用于搜索节点树的字符串,为此它递归搜索所有self的孩子。

从文档:

当放置在搜索字符串的开头,这个[//]指定搜索应在根节点开始并在整个节点树递归地执行。它在搜索字符串的其他地方不合法。

因此,举例来说,假设你有这样的节点树:

    scene 
      /  \ 
      /   \ 
     child1    child2 
    / \   / \ 
    /  \   /  \ 
grandchild1 grandchild2 grandchild3 grandchild4 

没有//childNodeWithName:只会发现child1child2。使用//,它会发现child1,child2,grandchild1,grandchild2,grandchild3grandchild4

+0

太棒了。几分钟前我刚刚看到答案,但答案更完整。谢谢! – Tim

相关问题