cocos2d 有问题。我做了一个接收触摸的类。类是一个子类,CCLayer
看起来init
像这样:
- (id)initWithFrame:(CGRect)frameSize
{
self = [super init];
if (self)
{
frame = frameSize;
size = frame.size;
origin = frame.origin;
[[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
return self;
}
所以一切都保持简单。frame
,size
并且origin
是类变量,但现在这无关紧要。所以我注册了我的班级女巫touchDispatcher
,这让我可以处理触摸。触摸处理是这样完成的:
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
return YES;
}
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
//Some touch logic which i need.
}
并在dealloc
我发布所有保留的信息并从touchDispatcher
. 但dealloc
从未调用过。如果我不注册,touchDispatcher
就会dealloc
被正确调用。如果重要的话,这个类作为一个子类添加到另一个 CCLayer 子类中,并且在那个类中dealloc
我发布了这个。
我错过了什么?