如何释放一个块

Mar*_*arc 6 memory-management objective-c ios objective-c-blocks

当我的网络服务关闭并与我的服务器通话时,我正在存储我的块.因此我[myBlock copy]用来保持对我的块的引用.

一旦我获得了数据并执行了阻止,我可以打电话[myBlock release],还是使用Block_release(myBlock)?我可以找到两者的参考.

Jas*_*ien 9

Block_release() 当你只在C中使用块而不是Objective-C时,有用.

使用Objective-C时,您可以使用releasecopy方法使代码看起来更像是围绕它的其余ObjC.

我想他们都做了完全相同的事情,并且objc方法只是一个围绕调用的包装器Block_release().


Mic*_*gar 5

正如它在参考文献中解释的那样,复制/释放的总和必须等于零.因此,如果您使用的是Objective-C,则可以调用[block copy][block release].

如果您使用C,则应使用Block_copy()Block_release().

正如Jasarien所写,他们可能正在做同样的事情,所以你可以互换使用它们.然而,它保持常规consistent-所以当你使用是很重要的[block copy],你宁愿使用[block release]Block_release()