2010-08-23 80 views
0

我有一個2線程的Iphone應用程序。一個在聽服務器,另一個在做UIKit,OpenGl的東西。在輔助線程的主線程上執行App Delegate方法

我需要運行更新從二級螺紋這就是聽來處理,所以我用

performSelectorOnMainThread:@selector"createGuessingView" withObject:nil waitUntilDone:YES 

,但由於某些原因,該圖的主線程中的服務器視圖的方法,此方法不會變執行。在方法的開頭放置一個斷點或一個printf表明它從不調用。我真的很難過。我在同一個程序中使用了performselectoronmainthread來更新文本字段並且工作完美無瑕。

編輯:

想通了:) 問題是,我用performSelectorOnMainThread對象被這個線程設置的對象被初始化之前(即使分配)在主線程。因此,引用指向null,並且選擇器未被識別。

感謝您的幫助

+0

你確定的接收器中調用performSelectorOnMainThread不是零? – imaginaryboy 2010-08-23 02:51:09

回答

2

難道不應該是:

@selector(createGuessingView) 

無報價。

-

EDIT(在響應評論)

什麼爲您的方法的簽名?如果它是:

- (void)createGuessingView:(id)something 

,那麼你應該記住結腸,在@selector(createGuessingView :)

+0

噢,對不起,這就是我有什麼,我只是複製它錯了, 任何其他的想法? – MEURSAULT 2010-08-23 02:35:26

+0

的簽名是 - (void)createGuessingView;不帶參數 – MEURSAULT 2010-08-23 02:47:22

+0

您是否在具有createGuessingView方法的對象實例上調用performSelectorOnMainThread方法? – 2010-08-23 02:59:26

相關問題