2012-04-23 60 views
6

我正在存儲我的塊,同時我的Web服務關閉並與我的服務器通話。因此,我使用[myBlock copy]來保留對我的區塊的引用。如何釋放塊

一旦我得到了我的數據並執行了該塊,我可以撥打[myBlock release],還是使用Block_release(myBlock)?我可以找到兩個參考。

+0

他們沒有區別 – 2012-04-23 08:42:49

回答

9

Block_release()是否適用於僅在C中使用塊而不是Objective-C。

當使用Objective-C時,您可以使用releasecopy方法使您的代碼看起來更像周圍的其他ObjC。

我想他們都做同樣的事情,並且objc方法只是對Block_release()調用的包裝。

5

作爲it's explained in reference複製/釋放的總和必須等於零。因此,如果您使用Objective-C,則可以撥打[block copy],因此請撥打[block release]

如果您使用C,則應使用Block_copy()Block_release()

由於Jasarien寫道他們可能做同樣的事情,所以你可以交替使用它們。但重要的是要保持公約的一致性 - 所以當你使用[block copy]時,你寧願使用[block release]而不是Block_release()