2012-01-14 17 views
3

私はこれらのメッセージを取得する理由すべてのアイデア:NSAutoreleasePoolが利用できないという警告メッセージが表示されるのはなぜですか?

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; 
} 
+1

あなたの答えはここにあります:http://stackoverflow.com/questions/6655842/nsautoreleasepool-is-unavailable – samfisher

答えて

7

これは、ウィットをコンパイルするためですh自動参照カウントオン。 ARCで別の構文を使用する必要があります。

@autoreleasepool { 
    // Your code 
} 

もう1つのオプションはturn off ARC for a specific fileです。

7

ええ、Automatic Reference Countingが有効になっていますが、明示的に 'release'を使用することはできません。あなたはこのように見えるのいずれかを無効にARCに必要とするか、またはあなたのmainメソッドを変更します。targets-の下

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

>設定>アップルLLVM Complailer 3.0

Objective-Cのガベージコレクションを構築(の変更)サポートを[ -fobjc-gc]

関連する問題