gpt4 book ai didi

objective-c - Objective C @autoreleasepool 指令

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:37 24 4
gpt4 key购买 nike

我正在读一本书,上面说(如果我没有弄错的话)用 @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 block 比直接使用 NSAutoreleasePool 实例更有效;即使您不使用 ARC,您也可以使用它们。

关于objective-c - Objective C @autoreleasepool 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com