我有一个视图,我正在使用 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
因为我也看到了那个。当我在输出中得到它时,我得到的是 SIGABRT 而不是 EXC_BAD_ACCESS。什么可能导致这种行为?我也尝试在 IB 上创建手势识别器,结果相同。
行为是完全不确定的;我尝试了两次完全相同的事情,一旦我获得了错误的访问权限,然后在它之后,在第二次运行中,我得到了一个 sigabrt。
我缺少一些基本的东西吗?或者它是否表明其他地方存在严重的内存泄漏(它只在滑动手势识别器上痴迷地显示,而在其他地方没有)?尝试了模拟器和真实设备,模拟器上有不同的iOS版本。没有运气,都一样。
谢谢,
能。