Xcode中使用NSAutoreleasePool报错的问题


今天在练习Learning Objective-c on Mac上的代码时输入了以下的代码,

NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];

//omitted

[pool drain];
return 0;

程序报错为"NSAutoreleasePool is unavailable: not available in automatic reference counting mode".

经过搜索得知Learning Objective-c on Mac使用的是比例老Xcode版本,而在Xcode4.2之后的版本中引入了ARC特性来自动管理内存,所以应该将下面的代码发为下面的样子。

@autoreleasepool{
//omitted.
}


PS:网上还有人建议在设置中关闭ARC来继续使用NSSAutoreleasePool,想不明白为什么有这个需求,难道是老代码用新Xcode来编译?如果是新项目的话还是尽量使用ARC吧,毕竟能自动管理内存是多美好的一件事啊。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM