1

私のテストアプリは UITableView をロードし、[1421:12503] *** -[__NSArrayM class]: message sent to deallocated instance 0x10ae83e0. クラッシュ時に main() メソッドでプロセスが停止しました。

そして、このクラッシュは ios 4.3.2 のシミュレータでのみ発生します。ios 4.3.2 および ios 5.1 のデバイスでは問題ありません。また、ios 5.1 のシミュレータでも問題ありません。どのインスタンスが正しく解放されているかわかりません。

ターミナルでコマンドを使用malloc_history 1421:12503 0x10ae83e0して、貴重な手がかりを見つけようとしました。しかし、次の情報しか得られません。

    > ALLOC 0x10ae83e0-0x10ae83f7 [size=24]: thread_ac2502c0 |start | main | UIApplicationMain | GSEventRun | GSEventRunModal | CFRunLoopRunInMode | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSource1 | 

    __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ | mshMIGPerform | 

_XCopyElementAtPosition | _AXXMIGCopyElementAtPosition | _copyElementAtPositionCallback |
     -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] |
     -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] |
     -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:]|
     -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] |
     -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] |
     -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] |
     -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] |
     -[UITableViewAccessibility(Accessibility) _accessibilityHitTest:withEvent:] | 
    -[UITableViewSectionElement _accessibilityHitTest:withEvent:] | 
    -[UITableViewSectionElement accessibilityChildren] | 
    -[__NSPlaceholderArray init] | 
    -[__NSPlaceholderArray initWithCapacity:] | 
    +[__NSArrayM __new::] | __CFAllocateObject2 | class_createInstance | calloc | malloc_zone_calloc 

この状況の手がかりを教えてください。前もって感謝します!

4

1 に答える 1

1

NSArrayデータソースに使用しているものは自動リリースされていると思います。それをチェックして、それを保持してください。これでおそらく修正されるでしょうが、特にこの配列をどのように作成しているかについては、コードがないと確信が持てません。

完了したら、アレイを解放することを忘れないでくださいdealloc

于 2012-05-12T03:17:18.893 に答える