0

刚刚将 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 保留]:消息发送到已释放实例 0x1ea38f70

这怎么可能?僵尸分析说手势识别器已经发布了?!

4

1 回答 1

0

原来这是一个 ARC 问题......对于那些感兴趣的人来说,有两种不同的解决方案。

@autoreleasepool {
    UIPanGestureRecognizer* pgr = [imageTableView panGestureRecognizer];
    [pgr setMinimumNumberOfTouches:2];
    [pgr setMaximumNumberOfTouches:2];    
}

或者

[imageTableView.panGestureRecognizer setMinimumNumberOfTouches:2];
[imageTableView.panGestureRecognizer setMaximumNumberOfTouches:2];

吸取的教训,如果不可能的话....尝试将ARC作为罪魁祸首。

于 2012-09-26T00:02:11.383 回答