2012-05-12 41 views
1

我的測試應用程序加載了由[1421:12503] *** -[__NSArrayM class]: message sent to deallocated instance 0x10ae83e0引起的UITableView和崩潰。進程在崩潰時停在main()方法中。加載由於發送到釋放實例的消息導致的UITableView崩潰

而這個崩潰只發生在模擬器的ios 4.3.2中,它可以在設備上使用ios 4.3.2和ios 5.1,在ios 5.1的simuator中也可以。 我找不到哪個實例被釋放不正確。

我在終端中使用命令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 

請問您能否提供這種情況的任何線索?提前致謝!

回答

1

我猜你正在使用的數據源NSArray是autoreleased。檢查出來並保留它。這可能會解決這個問題,但我不能確定沒有代碼,特別是如何創建這個數組。

當您完成後,請不要忘記在dealloc中發佈陣列。

+0

嗨丹尼爾,謝謝你的迴應。你是對的,一個可變數組被釋放不正確。 – mobguang

相關問題