0

我有一个视图,我正在使用 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

你也可以替换UIViewAnimationStateNSString因为我也看到了那个。当我在输出中得到它时,我得到的是 SIGABRT 而不是 EXC_BAD_ACCESS。什么可能导致这种行为?我也尝试在 IB 上创建手势识别器,结果相同。

行为是完全不确定的;我尝试了两次完全相同的事情,一旦我获得了错误的访问权限,然后在它之后,在第二次运行中,我得到了一个 sigabrt。

我缺少一些基本的东西吗?或者它是否表明其他地方存在严重的内存泄漏(它只在滑动手势识别器上痴迷地显示,而在其他地方没有)?尝试了模拟器和真实设备,模拟器上有不同的iOS版本。没有运气,都一样。

谢谢,

能。

4

0 回答 0