2011-08-11 78 views
2

我有一個封裝異步NSURL請求的對象。我應該什麼時候發佈它?什麼時候應該釋放異步使用的對象?

StrangersRequest *request = [[StrangersRequest alloc] init]; 
request.strangersListener = strangersListener; 
[request send]; 

分析XCode中說我應該立即鬆開 - 但是這是不正確的,因爲它必須處理的URLRequest回調。

發佈處理異步事件的對象的適當模式是什麼?

我猜我應該在請求完成時釋放(connectionDidFinishLoading)。如果是這樣,我怎麼能停止分析抱怨呢?

回答

2

您可以按照NSThread模型,讓對象保留自己,直到其異步任務完成。

+0

是的。我喜歡。謝謝。 –

4

您應該在使用它的類中保留對它的引用,然後立即將其丟棄。然後,你的班級可以在完成時刪除參考。類似這樣的:

StrangersRequest *request = [[StrangersRequest alloc] init]; 
request.strangersListener = strangersListener; 
[request send]; 
self.strangersRequest = request; 
[request release]; 
+0

這將工作。謝謝! –

0

一個解決方案是將它存儲在ivar中而不是局部變量。

相關問題