微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Objective-C是否自动释放?

如果我声明一个这样的块^ {DoSomething; }并把它放在一个实例变量中,如果我要保留它,我需要Block_copy()吗?

解决方法

是的,你需要复制.不是因为它们是自动释放的,而是因为它们从堆栈开始.请注意,块也像常规Objective-C对象一样运行,以便您可以使用常规复制消息来复制它们:
void storeBlockForLater: (dispatch_block_t) block
{
    [someArray addobject:[[block copy] autorelease]];
}

或者,如果你有一个属性

@property(copy) dispatch_block_t block;

保留在这里没有帮助.

原文地址:https://www.jb51.cc/c/115484.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐