0

私は、xcode と Objective-C プログラミングの世界では非常に新しいです。現在、 「Objective C-Programming: The big Nerd Ranch Guide」でプログラミングを学んでいます。OSX バージョンが古いため、xcode 3.2.6をインストールできました。しかし、この本は最新の xcode バージョンを使用しています。

章を進めていくと、問題に直面しました。

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    @autoreleasepool{   
        NSDate *now = [NSDate date];    
        NSLog(@"The date is %@", now);
    }
    return 0;
}

このコードサンプルでは、​​次のエラーが発生します。

「@-トークンの前に式が必要です」

Webで解決策を探しているときに、xcode 4の新しい構文であることがわかりました... 3.2.6と最新バージョンの間に大きな違いがあることを知りませんでした。ここで私の質問: xcode 4 のすべての構文が以前のバージョンに変更され、この本は私にとって意味がないということですか? それともこの発言だけですか?(はいの場合、古いバージョンでどのように書くのですか?私は流血の初心者なので、そのステートメントが何に適しているかさえわかりません)

4

4 に答える 4

1

次のコードに置き換え@autoreleasepool {}ます。

NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSDate *now = [NSDate date];
NSLog(@"The date is %@", now);
[pool release];
于 2012-04-09T18:38:57.847 に答える
1

一言で言えば、はい。

Apple はスタック全体をほとんど所有しているため、気まぐれに言語を自由に変更でき、3.0 から 4.0 にはいくつかの変更があります。個人的には、この時点で 3 で IOS プログラムを作成しようとして時間を無駄にするつもりはありません。

クラスの API は、iOS と同様に 3 と 4 の間、および 4 と 5 の間で変更されました。

この時点で、少なくとも XCODE 4 をサポートするものに Mac をアップグレードすることを強くお勧めします。

于 2012-04-09T18:38:37.067 に答える
0

表示されるメッセージは、ARC と呼ばれる Objective-C の新機能に言及しており、メモリ管理を簡素化することを目的としています。Xcode4 以降の Apple ObjC コンパイラで使用できます。

この本は引き続き使用できますが、すべての ARC 関連のステートメントを削除する必要があります (これは だけではありません @autoreleasepool)。また、メモリ管理も追加する必要があるため、実際には簡単ではありません。

于 2012-04-09T18:40:54.823 に答える