是否允许循环方法调用?

时间:2011-10-09 20:23:04

标签: objective-c

我从两个线程调用一个方法,并且认为我尝试了这个:

- (void)hideEnterButton
{
    if ([NSThread isMainThread])
    {
        enterButton.hidden = YES;
    }
    else
    {
        [self performSelectorOnMainThread:@selector(hideEnterButton) withObject:nil waitUntilDone:NO];
    }
}

原因是我明白所有GUI处理都必须在主线程上完成。 这有用吗?

3 个答案:

答案 0 :(得分:6)

正确的术语是recursive,而不是循环,是的,这样做完全没问题。

答案 1 :(得分:3)

是的,这完全有效。我之前使用过这种方法,效果很好。唯一的问题是,使用它的任何代码都不能假设按钮在返回后被隐藏,因为它不等待调用完成。如果这不是问题,请按原样使用。如果愿意,只需通过YES代替waitUntilDone:

答案 2 :(得分:0)

是。这是一种常见的模式。