[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
返回场景的静态初始化程序。