我认为我正在使用XIB文件进行设计,并且正常编写一个继承自UIView的常规类。我需要在视图中添加滑动功能。首先,是的,我启用了用户互动,在IB和viewDidLoad
方法中都启用了self.view.userInteractionEnabled = YES;
以防万一覆盖IB。
我在viewDidLoad
方法中以这种方式创建我的滑动手势识别器:
UISwipeGestureRecognizer *swiper = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swiped:)];
[self.view addGestureRecognizer:swiper];
我有:
- (void)swiped:(UISwipeGestureRecognizer*)sender {
self.swipeAction();
}
当我运行我的应用并执行滑动手势时,我收到一个EXC_BAD_ACCESS错误:
有趣的是,我在self.swipeAction();
行上有一个断点,甚至没有被击中。我立刻得到了这个错误。有时我只是得到错误的访问错误,有时我会得到非常奇怪的错误,例如:
-[UIViewAnimationState swiped:]: unrecognized selector sent to instance 0x96263f0
您也可以将UIViewAnimationState
替换为NSString
,因为我也看到了{{1}}。当我在输出中得到它时,我得到SIGABRT而不是EXC_BAD_ACCESS。什么可能导致这种行为?我也试过在IB上创建一个手势识别器,结果相同。
这种行为是完全不确定的;我尝试两次完全相同的事情,一旦我获得了不好的访问,然后直接在它之后,在第二次运行中,我得到一个sigabrt。
有什么基础我不见了吗?或者它是否是其他地方严重的内存泄漏的指示器(仅在轻扫手势识别器和其他地方痴迷地表现出来)?尝试使用模拟器上的不同iOS版本的模拟器和真实设备。没有运气,都一样。
谢谢,
可以。