1

私は本でobjective-cを学び始めたい:Objective-Cでのプログラミング(第4版)。私はWindowsXPに取り組んでいます。Objective-cプログラムをコンパイルするために、GNUstepをインストールし、この例を入力すると、チュートリアルで見つけたものを次のように入力します。

#import <Foundation/Foundation.h>

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

    NSLog (@"hello world");
    [pool drain];
    return 0;
}

そのすべてが正常に動作します。しかし、この本の最初の例を入力しようとすると、次のようになります。

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
@autoreleasepool {
    NSLog (@"Programming is fun!");
}
return 0;
}

多くのエラーが発生します:

私がibコンソールを取得するもの

誰かが私が間違っていることを知っていますか?助けてくれてありがとう。

4

1 に答える 1

3

これは、@autoreleasepool が LLVM コンパイラで導入された新しい機能であるためです。基本的に、コンパイラはこれを処理する方法を理解できません。Apple が ARC を導入したとき、これは言語の必須の変更であったため、現在では自動解放プールを作成する標準的な方法になっています。

于 2012-02-24T11:04:25.223 に答える