刚刚将xCode升级到4.5。 iOS 5 仍然是我的部署目标,但基本 SDK 现在是 6.0。
应用程序现在崩溃,以前没有崩溃。 该项目使用 ARC。
违规行是 UITableView 上的属性调用...请求 panGestureRecognizer(下面的第 3 行)。
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIPanGestureRecognizer* pgr = [imageTableView panGestureRecognizer];
[pgr setMinimumNumberOfTouches:2];
[pgr setMaximumNumberOfTouches:2];
}
生成以下错误消息:
-[UIScrollViewPanGestureRecognizer retain]:发送到已解除分配的实例0x1ea38f70的消息
这怎么可能? 僵尸分析说手势识别器已经发布?!
原来这是一个 ARC 问题...为感兴趣的人提供两种不同的解决方案。
@autoreleasepool {
UIPanGestureRecognizer* pgr = [imageTableView panGestureRecognizer];
[pgr setMinimumNumberOfTouches:2];
[pgr setMaximumNumberOfTouches:2];
}
或
[imageTableView.panGestureRecognizer setMinimumNumberOfTouches:2];
[imageTableView.panGestureRecognizer setMaximumNumberOfTouches:2];
吸取教训,如果不可能的话......尝试ARC作为罪魁祸首。