0

exc-bad-accessを追跡しようとしています。NSZombieを有効にしてInstrumentsを実行しましたが、アプリがクラッシュするとこのエラーログが表示されます。4回自動解放されるUIViewがありますが、自動解放されたプールが排出される前は、参照カウントが3であるため、intは-1参照カウントで終了します。

自動リリースされたメッセージを自分で送信していないので、どうすればこれを解決できますか?


#   Category    Event Type  RefCt   Timestamp   Address Size    Responsible Library Responsible Caller
0   UITextView  Malloc  1   00:09.478.888   0x80c2920   448 UIKit   -[UIRuntimeConnection initWithCoder:]
1   UITextView  Retain  2   00:09.492.814   0x80c2920   0   UIKit   -[UITextView resignFirstResponder]
2   UITextView  Autorelease     00:09.492.822   0x80c2920   0   UIKit   -[UITextView resignFirstResponder]
3   UITextView  Retain  3   00:09.494.396   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
4   UITextView  Retain  4   00:09.494.400   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _replaceObject:withObject:]
5   UITextView  Release 3   00:09.494.403   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
6   UITextView  Retain  4   00:09.494.407   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
7   UITextView  Release 3   00:09.494.448   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
8   UITextView  Autorelease     00:09.494.845   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
9   UITextView  Retain  4   00:09.494.848   0x80c2920   0   UIKit   -[UIRuntimeConnection initWithCoder:]
10  UITextView  Retain  5   00:09.495.215   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
11  UITextView  Retain  6   00:09.495.230   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
12  UITextView  Release 5   00:09.495.241   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
13  UITextView  Retain  6   00:09.495.255   0x80c2920   0   Foundation  -[NSArray(NSArray) initWithCoder:]
14  UITextView  Release 5   00:09.495.277   0x80c2920   0   UIKit   -[UIView initWithCoder:]
15  UITextView  Retain  6   00:09.495.325   0x80c2920   0   UIKit   -[UIView(Internal) _addSubview:positioned:relativeTo:]
16  UITextView  Release 5   00:09.499.036   0x80c2920   0   UIKit   -[UINib instantiateWithOwner:options:]
17  UITextView  Retain  6   00:09.499.306   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
18  UITextView  Retain  7   00:09.499.325   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
19  UITextView  Release 6   00:09.499.336   0x80c2920   0   Foundation  -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
20  UITextView  Retain  7   00:09.499.358   0x80c2920   0   Foundation  -[NSArray(NSArray) initWithCoder:]
21  UITextView  Release 6   00:09.499.385   0x80c2920   0   UIKit   -[UINib instantiateWithOwner:options:]
22  UITextView  Retain  7   00:09.499.511   0x80c2920   0   Proyecto3   -[EventoDetailViewControllerClass setNombreTextView:]
23  UITextView  Release 6   00:09.499.681   0x80c2920   0   Foundation  -[NSKeyedUnarchiver dealloc]
24  UITextView  Release 5   00:09.499.747   0x80c2920   0   Foundation  -[NSKeyedUnarchiver dealloc]
25  UITextView  Release 4   00:09.499.762   0x80c2920   0   Foundation  -[NSKeyedUnarchiver dealloc]
26  UITextView  Release 3   00:09.499.817   0x80c2920   0   Foundation  -[NSKeyedUnarchiver dealloc]
27  UITextView  Release 2   00:09.499.880   0x80c2920   0   UIKit   -[UIRuntimeConnection dealloc]
28  UITextView  Retain  3   00:09.534.891   0x80c2920   0   QuartzCore  -[CALayer layoutSublayers]
29  UITextView  Release 2   00:09.534.895   0x80c2920   0   QuartzCore  CALayerLayoutIfNeeded
30  UITextView  Retain  3   00:09.607.480   0x80c2920   0   UIKit   -[UIView(Hierarchy) subviews]
31  UITextView  Retain  4   00:09.607.947   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setView:]
32  UITextView  Retain  5   00:09.607.951   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setGestureView:]
33  UITextView  Retain  6   00:09.608.655   0x80c2920   0   UIKit   -[UITouch view]
34  UITextView  Autorelease     00:09.608.658   0x80c2920   0   UIKit   -[UITouchesEvent _clearViewForTouch:]
35  UITextView  Release 5   00:09.608.661   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setView:]
36  UITextView  Release 4   00:09.608.666   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setGestureView:]
37  UITextView  Release 3   00:09.608.807   0x80c2920   0   Foundation  -[NSAutoreleasePool release]
38  UITextView  Retain  4   00:09.609.307   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setView:]
39  UITextView  Retain  5   00:09.609.311   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setGestureView:]
40  UITextView  Retain  6   00:09.725.677   0x80c2920   0   UIKit   -[UITouch view]
41  UITextView  Autorelease     00:09.725.680   0x80c2920   0   UIKit   -[UITouchesEvent _clearViewForTouch:]
42  UITextView  Release 5   00:09.725.684   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setView:]
43  UITextView  Release 4   00:09.725.688   0x80c2920   0   UIKit   -[UITouch(UITouchInternal) setGestureView:]
44  UITextView  Release 3   00:09.725.839   0x80c2920   0   Foundation  -[NSAutoreleasePool release]
45  UITextView  Zombie  -1  00:11.383.459   0x80c2920   0   UIKit   -[UIView(Internal) _invalidateSubviewCache]

4

1 に答える 1

1

Instrumentsを使用してリークのプロファイルを作成する場合、Appleライブラリに起因すると表示されるリークを無視することをお勧めします。調査するリークは、アプリのコードに起因するものです。

自動解放されたオブジェクトは、プールが空になると解放されます。自動リリースされる独自のオブジェクトを作成していない場合、自動リリースされるオブジェクトはApple独自のもののみである必要があります[NSString string]

アナライザーをすでに実行し、強調表示されているすべての問題を解決したと思いますか?そうでない場合は、それが最初のステップです。

次に、EXC_BAD_ACCESS発生する行を見てください。問題のあるオブジェクトに関する手がかりを提供する可能性があります。-または他の-オブジェクトが時期尚早にリリースされているか、あるいはオブジェクトを十分に保持していない可能性があります。

それが発生すると、ある時点でランタイムがそれらの割り当てを解除します。それらにアクセスしようとすると、恐ろしいことになりますEXC_BAD_ACCESS

ルー・フランコの説明EXC_BAD_ACCESSとそれを追跡する方法へのリンクは次のとおりです。

EXC_BAD_ACCESSを理解する

于 2011-11-09T11:51:02.807 に答える