我从两个线程调用一个方法,并且认为我尝试了这个:
- (void)hideEnterButton
{
if ([NSThread isMainThread])
{
enterButton.hidden = YES;
}
else
{
[self performSelectorOnMainThread:@selector(hideEnterButton) withObject:nil waitUntilDone:NO];
}
}
原因是我明白所有GUI处理都必须在主线程上完成。 这有用吗?
答案 0 :(得分:6)
正确的术语是recursive,而不是循环,是的,这样做完全没问题。
答案 1 :(得分:3)
是的,这完全有效。我之前使用过这种方法,效果很好。唯一的问题是,使用它的任何代码都不能假设按钮在返回后被隐藏,因为它不等待调用完成。如果这不是问题,请按原样使用。如果愿意,只需通过YES
代替waitUntilDone:
。
答案 2 :(得分:0)
是。这是一种常见的模式。