7

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

获得数据并执行块后,我应该调用[myBlock release]还是使用Block_release(myBlock)?我可以找到两者的参考。

4

2 回答 2

9

Block_release()当您仅在 C 中使用块而不是 Objective-C 时是否存在。

使用 Objective-C 时,您可以使用releasecopy方法使您的代码看起来和感觉更像围绕它的 ObjC 的其余部分。

我想他们都做同样的事情,而且 objc 方法只是对调用的包装器Block_release()

于 2012-04-23T08:18:18.813 回答
5

正如参考资料中所解释的那样,复制/释放的总和必须为零。因此,如果您使用的是 Objective-C,您可以[block copy]调用[block release].

如果你使用 C,你应该使用Block_copy()and Block_release()

正如 Jasarien 所写,它们可能正在做同样的事情,因此您可以互换使用它们。然而,保持约定一致很重要——所以当你使用时,[block copy]你宁愿使用而[block release]不是Block_release()

于 2012-04-23T08:45:02.363 回答