刚刚将xCode升级到4.5。 iOS 5仍然是我的部署目标,但Base 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的消息
这怎么可能? Zombie Analysis说,gestureRecognizer已经发布了吗?!
答案 0 :(得分:0)
原来这是一个ARC问题......对于那些感兴趣的人来说,这是两种不同的解决方案。
@autoreleasepool {
UIPanGestureRecognizer* pgr = [imageTableView panGestureRecognizer];
[pgr setMinimumNumberOfTouches:2];
[pgr setMaximumNumberOfTouches:2];
}
或者
[imageTableView.panGestureRecognizer setMinimumNumberOfTouches:2];
[imageTableView.panGestureRecognizer setMaximumNumberOfTouches:2];
经验教训,如果不可能......尝试将ARC作为罪魁祸首。