簡體   English   中英

我應該何時發布異步使用的 object?

[英]When should I release an object used asynchronously?

我有一個封裝異步 NSURL 請求的 object。 我應該什么時候釋放它?

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

分析XCode 說我應該立即釋放它 - 但這是不對的,因為它必須處理 URLRequest 回調。

釋放處理異步事件的對象的合適模式是什么?

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

您應該在使用它的 class 中維護對它的引用,然后立即將其丟棄。 然后,您的 class 可以在完成后刪除參考。 像這樣的東西:

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

您可以遵循NSThread model 並讓 object 保留自身,直到其異步任務完成。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM