加载由发送到解除分配的实例的消息导致的UITableView崩溃 [英] Load UITableView crash caused by message sent to deallocated instance

查看:99
本文介绍了加载由发送到解除分配的实例的消息导致的UITableView崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的测试应用加载由 [1421:12503] *** - [__ NSArrayM类]引起的UITableView和崩溃:发送到解除分配的实例0x10ae83e0 的消息。崩溃时,进程在main()方法停止。

My test app loads a UITableView and crash caused by [1421:12503] *** -[__NSArrayM class]: message sent to deallocated instance 0x10ae83e0. Process stopped at main() method when crashed.

此崩溃只发生在ios 4.3.2的模拟器中,在ios 4.3.2和ios的设备中可以正常5.1,ios 5.1的模拟器也可以。
我无法找出哪个实例被释放不正确。

And this crash only happen in simulator for ios 4.3.2, it is ok in device for ios 4.3.2 and ios 5.1, it is also ok in simuator for ios 5.1. I cannot find out which instance be freed incorrect.

我在终端使用命令 malloc_history 1421:12503 0x10ae83e0 试图找到任何有价值的线索。但我只收到以下信息:

I used command malloc_history 1421:12503 0x10ae83e0 in terminal to try to find any valuable clue. But I only get following informations:

    > 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 

请您提供任何线索来解决这种情况?提前致谢!

Could you please kindly provide any clue for this situation? Thanks in advance!

推荐答案

我猜测 NSArray 你用于数据源的是自动释放的。检查并保留它。这可能会解决这个问题,但是如果没有一些代码,我真的无法确定,特别是关于如何创建这个数组。

I'm guessing that the NSArray you are using for the data source is autoreleased. Check it out and retain it. That will probably fix this, but I can't really be sure without some code, especially on how you are creating this array.

不要忘记发布数组你完成后在 dealloc 中。

Don't forget to release the array in dealloc when you're done.

这篇关于加载由发送到解除分配的实例的消息导致的UITableView崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆