我想弄清楚爲什麼我使用locationOfTouch:inView時出現錯誤。最後,我創建了一個只有locationOfTouch調用的新視圖,每當觸摸視圖時我仍然會獲得一個SIGABRT。locationOfTouch結果SIGABRT
從import語句除此之外,這裏是我認爲所有代碼:
@interface Dummy : UIView <UIGestureRecognizerDelegate> {
UIPanGestureRecognizer *repositionRecognizer;
}
@end
這裏的IMPL:
@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使用SIGABRT指向main.m。點擊「繼續」即會顯示「EXC_BAD_INSTRUCTION」。在http://imageshack.us/photo/my-images/849/consolel.png/上可用的屏幕截圖
請發佈控制檯錯誤消息。 – zaph
控制檯是空白的。看到這裏:http://imageshack.us/photo/my-images/849/consolel.png/ – undetected
在您的控制檯gdb>做一個backtrace或bt看到最後一個崩潰的堆棧。將環境變量NSZombieEnabled設置爲YES並調試您的代碼。 – 0x8badf00d