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 preserve]: 割り当て解除されたインスタンス 0x1ea38f70 に送信されたメッセージ

これはどのように可能ですか?Zombie Analysis は、gestureRecognizer が既にリリースされていると言っています?!

4

1 に答える 1

0

これはARCの問題であることが判明しました...興味のある人のための2つの異なる解決策。

@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 に答える