Cocos2d iphone 关于CCSprite初始化的内存问题 我想知道我是否做了下列案例,那是否考虑到泄漏? 如何修改代码,使其看起来更干净/更好 // ClassA @interface ClassA CCSprite* image; @property (nonatomic, retain) CCSprite* image; @end @implementation ClassA @synthesize image; - (id)init { image = [[CCSprite alloc] init]; } - (void)dealloc { [image release]; [super dealloc]; } @interface Main @end @implementation Main - (id)init { ClassA* aObject = [[ClassA alloc] init]; aObject.image = [CCSprite spriteWithFile: @"something.png"]; } @end
我用的是同样的东西。在你的代码中,两倍的内存分配给图像Cocos2d iphone 关于CCSprite初始化的内存问题 我想知道我是否做了下列案例,那是否考虑到泄漏? 如何修改代码,使其看起来更干净/更好 // ClassA @interface ClassA CCSprite* image; @property (nonatomic, retain) CCSprite* image; @end @implementation ClassA @synthesize image; - (id)init { image = [[CCSprite alloc] init]; } - (void)dealloc { [image release]; [super dealloc]; } @interface Main @end @implementation Main - (id)init { ClassA* aObject = [[ClassA alloc] init]; aObject.image = [CCSprite spriteWithFile: @"something.png"]; } @end,cocos2d-iphone,Cocos2d Iphone,我用的是同样的东西。在你的代码中,两倍的内存分配给图像 @interface ClassA : CCSprite { } @end @implementation ClassA - (id)init { } - (void)dealloc { printf("Released..\n"); [super dealloc]; } @interface Main @end @implementation Main - (id)init { ClassA* aO
@interface ClassA : CCSprite
{
}
@end
@implementation ClassA
- (id)init
{
}
- (void)dealloc
{
printf("Released..\n");
[super dealloc];
}
@interface Main
@end
@implementation Main
- (id)init
{
ClassA* aObject = [ClassA spriteWithFile: @"something.png"];
[self addChild:actor z:3 ];
}
- (void)dealloc
{
[self removeAllChildrenWithCleanup:YES];
[super dealloc];
}
@end
是的,我知道我分配了两次,但我想做的是,图像可能没有被分配一个精灵文件,这取决于类。。。这就是为什么在classA中,我想初始化spriteFile,以便以后其他类可以使用它。我该怎么做?我可以像[image setImage:@“something.png”]?第一次使用spriteWithFile,当您想更改时,请使用setDisplayFrame:或setTexture:。无论您做什么,都不要调用[image dealloc],您可能会想释放它。对不起,这是一个输入错误。。我编辑了iTunes ARC,use ARC,use ARC。谷歌的教程,使弧和停止怀疑,写你的应用程序!