嗨,我是客观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,当我尝试释放对象但是释放功能被划掉...为什么那样......?
谢谢。
答案 0 :(得分:3)
新项目默认启用ARC(自动引用计数)。在ARC中,禁止对objc对象进行引用计数操作。
新项目序列中应该有一个选项可以使用手动引用计数或GC。
答案 1 :(得分:1)
在项目中启用ARC(自动引用计数)。在ARC中,不允许在对象上引用计数操作(例如,释放)。通过“release”的红线只是意味着该方法已被弃用,或者不再需要。系统会为您发布所有内容。