[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
,它返回一個場景。