У меня есть проект cocos2d с пользовательским подклассом CCSprite:
MyCustomSprite.h:
#import "cocos2d.h"
@interface MyCustomSprite : CCSprite
@end
MyCustomSprite.m:
#import "MyCustomSprite.h"
@implementation MyCustomSprite
- (id)init
{
self = [super initWithFile:@"index.png"];
return self;
}
@end
По какой-то странной причине этот код вылетает с "EXC_BAD_ACCESS".
Но, несмотря на это, если я инициализирую super как ususal, а затем напишу код из initSithFile и initWithTexture CCSprite, он будет работать нормально:
self = [super init];
if (self) {
// Code from CCSprite.m - initWithFile
CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage: @"index.png"];
CGRect rect = CGRectZero;
rect.size = texture.contentSize;
// Code from CCSprite.m - iniWithTexture
[self setTexture:texture];
[self setTextureRect:rect];
return self;
}
В чем причина сбоя первого примера, а второго - нет, и в чем разница между ними?
Спасибо за ваши ответы!