1

次のような場合を知りたいのですが、それはリークと見なされますか?よりきれいに見えるようにコードを変更するにはどうすればよいですか?

// 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
4

1 に答える 1

0

私はこれと同じものを使用します..urコードを参照してください。画像に割り当てられたメモリの2倍です。

@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
于 2012-10-24T03:27:16.820 に答える