2011-01-29 78 views
2

我在後臺執行數據下載並在屏幕上顯示進度欄視圖。進度條在下載過程中沒有被更新(無論如何,我在代碼中更新它),它只是在下載完成之前一直處於空閒狀態,然後在消失之前完成。思考的問題是,我要進步視圖對象傳遞給下載程序我打過電話,如下所示:將對象傳遞給選擇器時遇到問題

[self performSelectorInBackground:@selector(downloadData) withObject:pBarView]; 

的呼叫:

-(void)downloadData:(UIProgressView *) pView { 
} 

當它試圖執行我得到的以下錯誤:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSThread initWithTarget:selector:object:]: target does not implement selector (*** -[RootViewController downloadData]) 

我想這可能不是解決這個問題的方法,但在這一點上,我按下按鈕和翻轉開關作爲地得到在擋風玻璃大。如果它是錯誤的,我會很感激一些關於如何讓進度條更新工作的指導。無論哪種方式,似乎我調用相同類型的參數downloadData方法,所以我的想法是,我不應該得到錯誤。很顯然,我在這裏失去了一些東西。我查看了NSObject文檔,直到我的目光越過。

回答

4

您錯過了選擇器中的冒號。該冒號表示您的方法需要的單個對象參數;否則程序試圖找到一個方法downloadData,不接受參數,然後結束崩潰。

這應該工作:

[self performSelectorInBackground:@selector(downloadData:) withObject:pBarView]; 
+0

D'哦!謝謝。沒有更多的崩潰,但仍然無法更新進度欄。那裏有任何想法? – mlewis54 2011-01-29 21:43:01