[CCNode node];
静的(クラス)メソッドです。自動的に呼び出します[[[self alloc] init] autorelease];
この静的初期化子を使用して、任意のCCNodeサブクラスを初期化できます。これは基本的に利便性のためであり、実際には必要ありません。(私が言ったように、持っているのはいいことですが)。
クラスメソッドは「+」記号を使用し、インスタンスメソッドは「-」記号を使用します。クラスメソッドは、Javaの静的メソッドに似ています。それらは、そのクラスのインスタンスを作成せずに呼び出すことができます。次のようになります。[YourClass doSomething]; //Doesn't need an instance of YourClass
インスタンスメソッドを実行するには、そのクラスのインスタンスが必要です。これは次のようになります。
YourClass *yClass = [[YourClass alloc] init];
[yClass doSomethingElse]; //Needs an instance of YourClass
私は見ていませんが、node
メソッドは次のようになっていると思います。
+ (CCNode*)node {
return [[[self alloc] init] autorelease];
}
奇妙な宣言は、カスタムレイヤーを子として持つシーン(静的初期化子で初期化されたもの)を返すだけで、CCDirectorが使用および表示できます。
編集:私が感じる何かが明快さを追加するでしょう。
+ (CCScene*)scene
奇妙な宣言は、シーンを返す単なる静的初期化子です。