繁体   English   中英

为什么我看到有关NSAutoreleasePool不可用的消息警告?

[英]Why am I seeing a message warning about NSAutoreleasePool being unavailable?

知道为什么我收到这些消息:

NSAutoreleasePool不可用:在自动引用计数模式下不可用

ARC禁止“发布”的显式消息发送

在这段代码中:

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

这是因为您正在使用自动引用计数进行编译。 您需要在ARC中使用不同的构造:

@autoreleasepool {
    // Your code
}

另一个选项是为特定文件关闭ARC

是的,您启用了自动引用计数,这不允许您明确使用'release'。 您需要禁用ARC或将主方法更改为如下所示:

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

在targets-> Build settings-> Apple LLVM Complailer 3.0下

Objective-C垃圾收集(更改为)支持[-fobjc-gc]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM