加载UITableView崩溃导致的消息发送到释放实例

我的testing应用程序加载了由[1421:12503] *** -[__NSArrayM class]: message sent to deallocated instance 0x10ae83e0引起的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。 我找不到哪个实例被释放不正确。

我在terminal中使用命令malloc_history 1421:12503 0x10ae83e0来尝试find任何有价值的线索。 但是我只能得到以下信息:

  > 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 

你能否提供这种情况的任何线索? 提前致谢!

我猜你正在使用的数据源的NSArray是autoreleased。 检查出来并保留它。 这可能会解决这个问题,但我不能确定没有一些代码,特别是如何创build这个数组。

当你完成的时候,不要忘记在dealloc释放数组。