//
//  MySprite.h
//  HimiAnimationsTestPro
//
//  Created by 华明 李 on 11-11-20.
//  Copyright (c) 2011年 __MyCompanyName__. All rights reserved.
//#import "CCSprite.h"@interface MySprite : CCSprite{
    
}
+(id) mySpriteInitWithImage:(NSString*)fileName;
-(id) initWithMySpriteImage:(NSString*)fileName;
@end//
//  MySprite.m
//  HimiAnimationsTestPro
//
//  Created by 华明 李 on 11-11-20.
//  Copyright (c) 2011年 __MyCompanyName__. All rights reserved.
//#import "MySprite.h"@implementation MySprite
+(id) mySpriteInitWithImage:(NSString*)fileName
{
return [[[self alloc] initWithMySpriteImage:fileName] autorelease];//这里仿照cocos2d原理,自动清理精灵
}-(id) initWithMySpriteImage:(NSString*)fileName
{
if ((self = [super initWithFile:fileName]))
{
        //初始化的东东都写在这里喔~
    }
    return self;
}  -(void) dealloc
{
   //内存清理
    [super dealloc];
}
@end
把半单例类接点添加到场景后,当场景dealloc后,MySprite的dealloc没有调用,场景dealloc不是应该连同子节点也一起dealloc的吗?记得好象看到过书上写的。

解决方案 »

  1.   

    return [[[self alloc] initWithMySpriteImage:fileName] autorelease];?应该是return [[[MySprite alloc] initWithMySpriteImage:fileName] autorelease];吧
      

  2.   

    CCSprite 不能调用alloc吧?不是单件类吗?
      

  3.   


    看《iphone&iPad cocos2d游戏开发实战》85页
      

  4.   

    dealloc 好像只有在这个类在 retaincount 变为0的时候(release)才会调用的吧。和你说的什么子节点没什么xx 关系啊。