cocos2d0.99.x的改动之一,简单说
CCSprite calls:
-(id) initWithXXX {
self = [self init];
}
所以在你的ccsprite子类的init方法中不要调用除[super init]之外的任何initWithXXX方法,否则就会出现递归的执行init的问题。
正确代码:
@implementation OrbSprite
-(id) init
{
if( (self=[super init]) )
{
//此处可处理一些成员变量,但不要调用任何initWithXXX;
}
return self;
}
@end
///
id sub = [OrbSprite initWithFile:@"xxx"]; // <--- OrbSprite#init will be called.不用写成[[OrbSprite alloc] init]
CCSprite calls:
-(id) initWithXXX {
self = [self init];
}
所以在你的ccsprite子类的init方法中不要调用除[super init]之外的任何initWithXXX方法,否则就会出现递归的执行init的问题。
正确代码:
@implementation OrbSprite
-(id) init
{
if( (self=[super init]) )
{
//此处可处理一些成员变量,但不要调用任何initWithXXX;
}
return self;
}
@end
///
id sub = [OrbSprite initWithFile:@"xxx"]; // <--- OrbSprite#init will be called.不用写成[[OrbSprite alloc] init]

被折叠的 条评论
为什么被折叠?



