【问题标题】:ios: over release object in ARC [closed]ios:ARC中的过度释放对象[关闭]
【发布时间】:2015-09-22 08:40:28
【问题描述】:

我在我的项目中使用 ARC。

在取消分配自定义视图期间,我的应用程序有时会崩溃。我认为该对象之前已经被释放,但自动释放池尝试再次释放它。

导致问题的原因是什么?我想我没有在多线程中访问视图对象。

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x00010012

0  CoreFoundation   CFRelease + 17
8  UIKit -[UIView dealloc] + 1420
9  mypreoject QuestionPage.m line 29 -[QuestionPage dealloc]
10 libobjc.A.dylib  (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 388
16 UIKit UIApplicationMain + 144
17 mypreoject   main.m line 13 main
18 libdyld.dylib start + 2

【问题讨论】:

    标签: ios nsautoreleasepool


    【解决方案1】:

    查看 QuestionPage.m 第 29 行。你看到那里有什么可疑的地方吗?

    另一个建议是使用 Instruments 来调试内存错误,但如果您使用 ARC,我怀疑是否有任何错误。

    另外值得一提的是进入应用的构建设置并确保实际使用了 ARC。

    【讨论】:

    • 对不起,我忘记发布代码了。 QuestionPage.m 中的第 29 行是 [[NSNotificationCenter defaultCenter] removeObserver:self] 之后的“}”。
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多