2

是否向NSOperationQueue插入NSOperation會增加NSOperation的保留計數?如果是,什麼時候它會減少?NSOperation的保留計數行爲

+1

http://whentouseretaincount.com – 2012-08-22 10:25:47

回答

3

請閱讀文檔。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html

  • (無效)addOperation:(的NSOperation *)操作

參數

操作

要添加到隊列中的操作對象。在內存管理的應用程序中,該對象由操作隊列保留。在 垃圾回收應用程序中,隊列強烈引用操作對象 。

討論

添加完畢後,在指定操作直到它 完成執行保留在隊列中。

+0

好吧,我差點拿到了。但還是有一些澄清。我什麼時候說NSoperation已經完成執行?主要方法是否完成執行?在我從NSoperation的例子中,我異步地調用一個web服務,並且我有一個回調方法來捕獲結果。是否有任何保證,只有在回調方法得到響應後,NSoperation纔會被釋放? (我弱從web服務類引用NSoperation對象) – Advaith

2

the documentation

在存儲器管理的應用程序,這個目的是由操作隊列保留。在垃圾回收應用程序中,隊列強烈引用操作對象。

出隊和處理時它會減少,所以你不必擔心它。只需將其添加到隊列中,並確保您已平衡了所有retainrelease,並且它不會泄漏內存。