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