Этот вопрос действительно поставил меня в тупик...
У меня есть проект iPad, в котором я использую UIPanGestureRecognizer, и я использую следующий вызов метода в своем handlePanGesture:
- (AIEnemyUnit *) hitTestForEnemyUnit:(CGPoint)where {
CALayer * layer = [self hitTest:where];
while (layer) {
if ([layer isKindOfClass:[AIEnemyUnit class]]) {
return (AIEnemyUnit *)layer;
} else {
layer = layer.superlayer;
}
}
return nil;
}
Как только я «нахожу» слой AIEnemyUnit, я продолжаю перетаскивание, и все работает нормально. За исключением примерно 6-10-го «перетаскивания», я получаю сбой с отладчиком глубоко внутри только CALayer -hitTest:
modifying layer that is being finalized - 0x124530
*** -[NSCFSet hitTest:]: unrecognized selector sent to instance 0x124530
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason:
'*** -[NSCFSet hitTest:]: unrecognized selector sent to instance 0x124530'