1

奇妙なクラッシュが発生しています。コンテキストを持つ別のテーブルビューコントローラーにセグエするUITableViewControllerがあります。

セルをクリックすると、次のメッセージが表示されてクラッシュします。

[UITapGestureRecognizer retain]: message sent to deallocated instance 0x8700af0

だから私はゾンビの楽器を走らせました、そしてこれがそれが示しているものです:

#   Address Category    Event Type  RefCt   Timestamp   Size    Responsible Library Responsible Caller
0   0xf5f36c0   UITapGestureRecognizer  Malloc  1   00:04.128.790   80  UIKit   UINibDecoderDecodeObjectForValue
1   0xf5f36c0   UITapGestureRecognizer  Retain  2   00:04.128.807   0   UIKit   -[UIRuntimeConnection initWithCoder:]
2   0xf5f36c0   UITapGestureRecognizer  Retain  3   00:04.128.880   0   UIKit   UINibDecoderDecodeObjectForValue
3   0xf5f36c0   UITapGestureRecognizer  Retain  4   00:04.128.959   0   UIKit   -[UIRuntimeConnection initWithCoder:]
4   0xf5f36c0   UITapGestureRecognizer  Retain  5   00:04.129.007   0   UIKit   UINibDecoderDecodeObjectForValue
5   0xf5f36c0   UITapGestureRecognizer  Retain  6   00:04.129.017   0   UIKit   UINibDecoderDecodeObjectForValue
6   0xf5f36c0   UITapGestureRecognizer  Retain  7   00:04.129.079   0   UIKit   -[UINib instantiateWithOwner:options:]
7   0xf5f36c0   UITapGestureRecognizer  Release 6   00:04.129.111   0   UIKit   -[UINibDecoder finishDecoding]
8   0xf5f36c0   UITapGestureRecognizer  Release 5   00:04.129.124   0   UIKit   -[UINibDecoder finishDecoding]
9   0xf5f36c0   UITapGestureRecognizer  Release 4   00:04.129.130   0   UIKit   -[UINibDecoder finishDecoding]
10  0xf5f36c0   UITapGestureRecognizer  Release 3   00:04.129.135   0   UIKit   -[UINibDecoder finishDecoding]
11  0xf5f36c0   UITapGestureRecognizer  Release 2   00:04.129.139   0   UIKit   -[UIRuntimeConnection dealloc]
12  0xf5f36c0   UITapGestureRecognizer  Release 1   00:04.129.144   0   UIKit   -[UIRuntimeConnection dealloc]
13  0xf5f36c0   UITapGestureRecognizer  Release 0   00:04.130.131   0   Foundation  __NSFireDelayedPerform
14  0xf5f36c0   UITapGestureRecognizer  Zombie  -1  00:04.131.132   0   UIKit   -[UINib instantiateWithOwner:options:]

tapGestureRecognizerは、弱いと宣言されたIBを介して追加されます。ViewDidUnloadでnilに設定しないように提案されたので、コメントアウトしました。

ここで、タブコントローラーの別のタブに移動し、そこでいくつかのセグエを実行して、クラッシュが発生しているこの最初のテーブルビューコントローラーに戻ると、クラッシュは発生せず、すべてが完全にセグエされます。

また、クラッシュしているコントローラーには、2種類のオブジェクトが表示されています。テキストだけのものもあれば、画像のものもあります。画像のみがクラッシュしています。テキストセルはうまく機能しています。

私はこれをiOS5とiOS5.1で実行しています。電話とシミュレータの両方で発生します。これは、iOS6デバイスまたはiOS6.1シミュレーターではクラッシュしません。

ここで何が起こっているのか誰かが知っていますか?

4

3 に答える 3

3

私はこれとまったく同じ問題を抱えていました。メニューに使用している静的なテーブルビューがあり、他のビューにセグエします。ジェスチャレコグナイザーを使用していたビューのみがiOS5では機能しませんが、iOS 6では問題なく機能します。元々、アクション用のIBOutletsしかなく、実際のジェスチャレコグナイザー自体はありませんでした。レコグナイザー自体にIBOutletsを追加しましたが、ゾンビは発生していません:)

-Rojuinex

于 2013-04-04T03:42:13.003 に答える
0

これまでの解決策は、私が接続していたコントローラーからジェスチャ認識機能を削除することでした。これが問題の原因であるように見えました。

于 2013-02-07T02:36:00.963 に答える
0

Xibまたはストーリーボードに実装されているUITapGestureRecognizerを削除し、コードを使用して実装します。すべてのOSバージョンで正常に動作します。

于 2013-04-23T11:41:29.060 に答える