【发布时间】:2015-09-10 08:14:06
【问题描述】:
我遇到了一些非常奇怪的 EXC_BAD_ACCESS 崩溃,这些崩溃完全可以在最后 2 个 Xcode 7 Beta 版本(包括昨晚的 GM)中重现:
在运行我的应用程序时,AFNetworking 崩溃并在 AFURLConnectionOperation.m 第 154 行出现 EXC_BAD_ACCESS 消息。更准确地说,这里是堆栈跟踪:
thread #1: tid = 0x23b173, 0x000000010b89beaf CoreFoundation`___forwarding___ + 767, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
frame #0: 0x000000010b89beaf CoreFoundation`___forwarding___ + 767
frame #1: 0x000000010b89bb28 CoreFoundation`__forwarding_prep_0___ + 120
* frame #2: 0x0000000105a4507e MyApp`-[AFURLConnectionOperation .cxx_destruct](self=0x00007fc4d873aa20, _cmd=(null)) + 494 at AFURLConnectionOperation.m:154
frame #3: 0x000000010af637bb libobjc.A.dylib`object_cxxDestructFromClass(objc_object*, objc_class*) + 127
frame #4: 0x000000010af6e390 libobjc.A.dylib`objc_destructInstance + 93
frame #5: 0x000000010b94e7c6 CoreFoundation`-[NSObject(NSObject) __dealloc_zombie] + 150
frame #6: 0x00000001087ee9df Foundation`-[NSOperation dealloc] + 89
frame #7: 0x0000000105a3dca2 MyApp`-[AFURLConnectionOperation dealloc](self=0x00007fc4d873aa20, _cmd="dealloc") + 162 at AFURLConnectionOperation.m:216
frame #8: 0x000000010af78afe libobjc.A.dylib`objc_object::sidetable_release(bool) + 232
frame #9: 0x0000000105a31dd1 MyApp`__destroy_helper_block_((null)=0x00007fc4d8b27000) + 65 at AFHTTPRequestOperation.m:0
frame #10: 0x000000010d1226b1 libsystem_blocks.dylib`_Block_release + 128
frame #11: 0x000000010d0a549b libdispatch.dylib`_dispatch_client_callout + 8
frame #12: 0x000000010d08d34b libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1738
frame #13: 0x000000010b8a63e9 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
frame #14: 0x000000010b867939 CoreFoundation`__CFRunLoopRun + 2073
frame #15: 0x000000010b866e98 CoreFoundation`CFRunLoopRunSpecific + 488
frame #16: 0x000000010dd2cad2 GraphicsServices`GSEventRunModal + 161
frame #17: 0x00000001095c9676 UIKit`UIApplicationMain + 171
frame #18: 0x0000000105767d3f MyApp`main(argc=7, argv=0x00007fff5a541620) + 111 at main.m:33
frame #19: 0x000000010d0da92d libdyld.dylib`start + 1
我在我的方案中设置了启用的僵尸对象并得到以下错误
*** -[NSMutableURLRequest release]: message sent to deallocated instance 0x7fc4d8acc460
你们中有人知道导致崩溃的原因吗?使用 Xcode 6 就像一个魅力,但我真的很想在我的代码中使用新的 Swift 功能......
【问题讨论】:
-
可能是 AFNetworking 开发人员仍在努力使其 API 与 Swift 2.0 兼容。质疑自己是我尽量减少使用第三方 API 的一个原因。
-
你是not alone我的朋友。
-
是的,7.1 似乎有点搞砸了。我对在 Xcode 7 beta 6 上运行良好但现在在 7.1 上运行良好的代码有同样的问题
-
您认为这是 AFNetworking 中的错误还是 Swift 编译器中的错误(因为它似乎以某种方式处理混乱的 ARC 代码)是否安全
标签: ios xcode swift afnetworking swift2