2011-10-09 109 views
3

我打電話從兩個線程的方法,我想我試試這個:是否允許循環方法調用?

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

之所以這樣,是,我明白,所有的GUI操作必須在主線程上完成。 這工作?

回答

6

適當的期限是recursive,不是圓的,是的,這是完全沒有做到這一點。

0

是的。這是一種常見的模式。

3

是的,這是完全有效的。我以前使用過這種確切的方法,它工作得很好。唯一的問題是,使用它的任何代碼都不能假定按鈕在返回後隱藏,因爲它不會等待調用完成。如果這不會成爲問題,請按原樣使用它。如果可以,只需通過YES代替waitUntilDone: