Tôi đang cố gắng tìm ra lý do tại sao tôi gặp lỗi khi sử dụng locationOfTouch: inView. Cuối cùng tôi tạo ra một khung nhìn mới chỉ với cuộc gọi locationOfTouch và tôi vẫn nhận được SIGABRT bất cứ khi nào tôi chạm vào khung nhìn.locationOfKết quả chạm vào SIGABRT
Bên cạnh báo cáo nhập khẩu, đây là tất cả các mã trong quan điểm của tôi:
@interface Dummy : UIView <UIGestureRecognizerDelegate> {
UIPanGestureRecognizer *repositionRecognizer;
}
@end
Đây là 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
Nếu tôi sử dụng locationInView, nó hoạt động được. Nếu tôi sử dụng locationOfTouch: inView, chương trình sẽ hủy ngay khi chạm vào kết thúc.
EDIT: Trên bảng điều khiển, với lớp này, không có thông báo lỗi nào được hiển thị. IDE trỏ tới main.m với một SIGABRT. Nhấp vào kết quả 'Tiếp tục' trong 'EXC_BAD_INSTRUCTION'. Ảnh chụp màn hình có sẵn trên http://imageshack.us/photo/my-images/849/consolel.png/
Vui lòng đăng thông báo lỗi trên bảng điều khiển. – zaph
Bảng điều khiển trống. Xem tại đây: http://imageshack.us/photo/my-images/849/consolel.png/ – undetected
Trong giao diện điều khiển của bạn gdb> làm một backtrace hoặc bt để xem chồng cuối cùng bị lỗi. Đặt biến môi trường NSZombieEnabled thành YES và gỡ lỗi mã của bạn. – 0x8badf00d