Objective - C直接初始化(用于Cocos2D风格的动作)



我有一个初始化如下的类:

@implementation MyClass
+(id) initializeMyClass
{
    return [[[self alloc] initMyClass] autorelease];
}
-(id) initMyClass
{
    if (([self = [super init]))
    {
    }
    return self;
}
-(void) dealloc
{
    NSLog(@"Deallocating");//I also used CCLOG instead.
    [super dealloc];
}
@end

我在另一个不带对象的类中初始化这个类:

[MyClass initializeMyClass];

这个工作得很好,但是MyClass的dealloc方法没有被调用,并且由于一些资源没有被释放而崩溃。

这完全令人困惑,在网上找不到任何东西。如果有人能提出一个解决方案或替代方法,我将不胜感激。

谢谢。

如果你需要将MyClass初始化为另一个类,那么你应该这样写

@implementation MyClass
+(id) initializeMyClass
{
    return [[[self alloc] initMyClass] retain];
}
-(id) initMyClass
{
    if (([self = [super init]))
    {
    }
    return self;
}
-(void) dealloc
{
    NSLog(@"Deallocating");//I also used CCLOG instead.
    [super dealloc];
}
@end

最新更新