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これをリリースします。
私は何が欠けていますか?