Я пытаюсь выяснить, почему я получаю сообщение об ошибке при использовании locationOfTouch: inView. В конце концов я создал новый вид с помощью только вызова locationOfTouch, и я все еще получаю SIGABRT всякий раз, когда я касаюсь вида.
Помимо операторов импорта, вот весь код на мой взгляд:
@interface Dummy : UIView <UIGestureRecognizerDelegate> {
UIPanGestureRecognizer *repositionRecognizer;
}
@end
Вот подсчет:
@implementation Dummy
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
repositionRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
action:@selector(reposition:)];
[repositionRecognizer setDelegate:self];
[self addGestureRecognizer:repositionRecognizer];
self.backgroundColor = [UIColor grayColor];
}
return self;
}
- (void)reposition:(UIGestureRecognizer *) gestureRecognizer {
[gestureRecognizer locationOfTouch:0 inView:self];
//[gestureRecognizer locationInView:self];
}
@end
Если я использую locationInView, все работает нормально. Если я использую locationOfTouch: inView, программа прерывается, как только заканчивается касание.
РЕДАКТИРОВАТЬ: На консоли, с этим классом, сообщения об ошибках не отображаются. IDE указывает на main.m с помощью SIGABRT. Нажатие на «Продолжить» приводит к «EXC_BAD_INSTRUCTION». Скриншот доступен на http://imageshack.us/photo/my-images/849/consolel.png/