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