关于Xcode 4.3中的自动释放

时间:2012-01-09 22:47:55

标签: objective-c xcode autorelease

嗨,我是客观C的新手。 在旧版本的Xcode中,当我们创建新项目时,IDE会生成如下所示的NSAutoreleasePool对象以允许自动释放对象

int main (int argc, char *argv[]) {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        [pool drain]; 
        return 0; }

但是在Xcode 4.3中,IDE会生成以下代码

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

{

    @autoreleasepool {
          //insert code

    }
    return 0; 
}

使用旧版本..我可以手动释放对象..使用新的Xcode 4.3,当我尝试释放对象但是释放功能被划掉...为什么那样......?

谢谢。

2 个答案:

答案 0 :(得分:3)

新项目默认启用ARC(自动引用计数)。在ARC中,禁止对objc对象进行引用计数操作。

新项目序列中应该有一个选项可以使用手动引用计数或GC。

答案 1 :(得分:1)

在项目中启用ARC(自动引用计数)。在ARC中,不允许在对象上引用计数操作(例如,释放)。通过“release”的红线只是意味着该方法已被弃用,或者不再需要。系统会为您发布所有内容。