cocos2d に問題があります。タッチを受けるクラスを作りました。Class は のサブクラスで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
そこで、タッチを処理できるクラス witch を登録します。タッチ処理は次のように行われます。
- (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
これをリリースします。
私は何が欠けていますか?