【问题标题】:ARC converted app crashing with last call to .cxx_destructARC 转换的应用程序在最后一次调用 .cxx_destruct 时崩溃
【发布时间】:2012-09-15 17:41:44
【问题描述】:

下面是我的应用程序崩溃的线程的堆栈跟踪。 我最近将我的应用程序转换为 ARC。 最后一个调用是 HomePageViewController 的 cxx_destruct,它是我在 tabviewcontroller 中的一个选项卡的 rootviewcontroller。 appdelegate 实现文件没有为编译启用 ARC,因此 HomePageViewController 一旦添加到 appdelegate 文件中的 tabbarviewcontroller 就会被释放。 HomePageViewController 实现文件具有用于编译的 ARC 启用标志。 有人可以指导我正确的方向吗?

0   libobjc.A.dylib                 0x35bcdf2a objc_release
1   MySample                        0x00096142 -[HomePageViewController .cxx_destruct] + 402
2   libobjc.A.dylib                 0x35bcff3a object_cxxDestructFromClass(objc_object*, objc_class*)
3   libobjc.A.dylib                 0x35bcd0ce objc_destructInstance
4   libobjc.A.dylib                 0x35bcd3a2 object_dispose
5   UIKit                           0x37b05c84 -[UIViewController dealloc]
6   MySample                        0x00095afa -[HomePageViewController dealloc] + 218
7   libobjc.A.dylib                 0x35bcd484
8   CoreFoundation                  0x3801343c _CFAutoreleasePoolPop
9   UIKit                           0x37a46d94 _wrapRunLoopWithAutoreleasePoolHandler
10  CoreFoundation                  0x380a56ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
11  CoreFoundation                  0x380a39bc __CFRunLoopDoObservers
12  CoreFoundation                  0x380a3d12 __CFRunLoopRun
13  CoreFoundation                  0x38016eb8 CFRunLoopRunSpecific
14  CoreFoundation                  0x38016d44 CFRunLoopRunInMode
15  GraphicsServices                0x35ccc2e6 GSEventRunModal
16  UIKit                           0x37a8e2fc UIApplicationMain
17  MySample                        0x0002be98 main + 116
18  MySample                        0x0000315c start +

【问题讨论】:

  • 不管你的应用代理没有启用 ARC,视图控制器由 ARC 管理,你手动尝试释放它。不要那样做。

标签: objective-c xcode automatic-ref-counting


【解决方案1】:

上面的评论是正确的;您似乎在该视图控制器上手动调用 release,这是 ARC 不允许的。只需删除该呼叫,您就应该可以正常使用了。

另外,您为什么要从 ARC 中排除您的应用委托?如果您使用的是 Core Data,那么除了 Core Data 堆栈之外,该类中甚至不应该有太多代码......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多