0
我有下面的类:查看自定义类
@interface Gamer {
...
}
+(id) CreatePlayer;
@end
@implementation Gamer
+(id) CreatePlayer
{
return [[[self alloc] init]autorelease];
}
@end
我需要使用玩家在另一个类的实例变量。 例如这样:
@interface Layer{
Gamer * mCenterGamer;
}
@end
@implementation
-(void) init{
mCenterGamer = [Gamer CreatePlayer];
}
-(void) exampleFuncForUseGamer{
[mCenterGamer ...]// some methods of the Gamer class
}
@end
它是正确的吗? (我认为autorelease释放init函数后释放了mCenterGamer)
对不起,只有一个评论,而不是一个答案:你没有使用标准的可可模式来分配一个新的对象。除非你有充足的理由(你可能会这么做),你应该坚持标准模式 - 'mCenterGamer = [[Gamer alloc] init];'并且使用'Gamer'的'init'方法来准备使用 – ohhorob 2010-07-05 18:06:29