【问题标题】:How to release a block如何释放块
【发布时间】:2012-05-03 20:33:15
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c ios memory-management objective-c-blocks


    【解决方案1】:

    Block_release() 适用于仅在 C 中使用块而不是 Objective-C 的情况。

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

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

    【讨论】:

      【解决方案2】:

      作为it's explained in reference 复制/释放之和必须为零。因此,如果您使用的是 Objective-C,您可以调用[block copy],因此可以调用[block release]

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-18
        • 2014-07-12
        • 2021-12-09
        • 2021-08-15
        • 2012-06-23
        • 2013-04-16
        • 2014-03-15
        • 2011-09-01
        相关资源
        最近更新 更多