这块会像我期望的那样起作用吗?

时间:2014-03-08 20:22:03

标签: ios objective-c-blocks sprite-kit

我已多次使用过块,但在这种情况下,我怀疑它是否会起作用。

我必须检查一堆节点,看看它们是否可见。然后我构建了这个方法:

- (BOOL)areNodesVisible {

  __block BOOL visible = YES;
  [self enumerateChildNodesWithName:@"myNode"
                         usingBlock:^(SKNode *node, BOOL *stop) {
                           if ([node isHidden]) {
                             visible = NO;
                             *stop = YES;
                           }
                         }];

  return visible;
}

我的问题是该块是异步的,因此该方法将始终返回YES。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您不必在此处使用某个块,您可以使用 childrenSKNode属性。

- (BOOL)areNodesVisible
{
    for (SKNode *node in self.children)
    {
        if ([node isHidden] && [node.name isEqualToString:@"myNode"])
            return NO;

    }
    return YES;
}