我查看了您的示例项目,似乎:
- 崩溃仅发生在实际设备上
- 仅当滑动手势需要 3 次或更多次触摸时才会发生崩溃
在我看来,UIGestureRecognizer
当使用 Interface Builder 添加时,这就像类中的错误,因此您现在无能为力。我向 Apple 提交了一份雷达 (#14399827) 来描述这个问题。您可能也应该这样做。
但是,您可以通过在代码中而不是像现在这样在情节提要中创建手势识别器来解决此错误。
从情节提要中删除手势识别器(完全删除),然后将其添加到viewDidLoad
视图控制器中的方法中:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UISwipeGestureRecognizer *recogniser = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(resetText:)];
[recogniser setDirection:UISwipeGestureRecognizerDirectionDown];
[recogniser setNumberOfTouchesRequired:3];
[self.view addGestureRecognizer:recogniser];
}
我知道这并不理想,因为在某些情况下将视图控制器直接添加到情节提要可能更方便,但不幸的是,由于 Apple 的实现中存在错误,您目前似乎无法这样做。