我有我自己的類,它應該執行請求和數據處理(解析)。這個類應該從不同的視圖控制器中使用。在這個類中,我實現了:ASIHTTPRequest:使用異步請求時,結果沒有在正確的時間填充
- (void)sendRequest:(NSString *)url;
- (void)requestFinished:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;
- (id)parse:(NSString *)aString;
我創建了一個名爲result的屬性。如果請求到達,requestFinished被調用。在requestFinished結果保存在結果中。我想如果我在sendRequest中返回一個值,我會返回結果。但正如我之前提到requestFinished獲取結果,所以sendRequest總是返回一個零變量,因爲那時請求沒有完成。
我該怎麼做才能返回結果?我希望這個類可以在不同的視圖控制器中使用。所以我的第一個想法是在我的視圖控制器中創建一個方法並傳遞結果不起作用。
我讀了這個線程Pass Result of ASIHTTPRequest "requestFinished" Back to Originating Method關於使用視圖控制器作爲委託。但後來我認爲我必須在視圖控制器中實現requestFinished和requestFailed。沒有在不同視圖控制器中重複代碼的想法將消失...
有人可以幫忙嗎?
爲什麼不讓'_delegate'符合你的協議 - 就像'id _delegate'一樣,那麼你可以確定它響應'displayResults'而不需要檢查。 –
cjroebuck
2011-01-28 12:56:09
好點!不需要'respondsToSelector'。 – testing 2011-01-30 20:05:27