加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Objective C @autoreleasepool指令

发布时间:2020-12-16 10:22:58 所属栏目:百科 来源:网络整理
导读:我正在读一本书(如果我没有弄错的话)用@autoreleasepool语句包装一些代码启用ARC.首先是这种情况? 我的第二个问题是当我在做一些iOS示例程序时,虽然我在创建一个新项目时启用了ARC,但我从未在任何地方看到过这个指令(在自动生成的代码中).这是否意味着ARC没
我正在读一本书(如果我没有弄错的话)用@autoreleasepool语句包装一些代码启用ARC.首先是这种情况?

我的第二个问题是当我在做一些iOS示例程序时,虽然我在创建一个新项目时启用了ARC,但我从未在任何地方看到过这个指令(在自动生成的代码中).这是否意味着ARC没有被使用?任何想法/指针都表示赞赏.

解决方法

@autoreleasepool不会“启用”ARC.这只是ARC使用自动释放池的方式.

在ARC之前,您使用NSAutoreleasePool类来设置这样的自动释放池:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Code benefitting from a local autorelease pool.
[pool release];

但是在使用ARC时不允许调用release,因此引入了一种使用自动释放池的新方法:

@autoreleasepool {
    // Code benefitting from a local autorelease pool.
}

@autoreleasepool块比直接使用NSAutoreleasePool实例更有效;即使您不使用ARC,也可以使用它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读