我正在使用两个调用setScore,它们在init方法和UpdateScore中销毁一个对象。当我运行程序时,一旦调用UpdateScore,我就会崩溃。有人看到我的代码有错误吗?非常感谢你。
在我的.h文件中,我有CCLabel *分数;和NSString *文本;宣布供全球使用。
-(void)setScore{
scorE = 1;
text = [[NSString alloc] initWithFormat:@"%d", scorE];
score = [CCLabel labelWithString:text fontName:@"Marker Felt" fontSize:18];
score.position = ccp(45, 310);
[self addChild: score];
}
-(void)UpdateScore{
scorE++;
NSLog(@"score +1");
[score setString: [NSString stringWithFormat:@"%d",scorE]];
}
答案 0 :(得分:1)
当您使用CCLabel的类方法时,可能会自动释放您的分数对象。尝试使用以下选项:
1)score = [[CCLabel labelWithString:text fontName:@"Marker Felt" fontSize:18] retain];
2)score = [[CCLabel alloc] initWithString:text fontName:@"Marker Felt" fontSize:18];
不要忘记在你的dealloc(或任何需要的地方)释放你的分数对象。