Ios Swift 2.0随机交换错误访问

Ios Swift 2.0随机交换错误访问,ios,xcode,swift,afnetworking,swift2,Ios,Xcode,Swift,Afnetworking,Swift2,我遇到了一些非常奇怪的EXC_BAD_访问崩溃,这些崩溃完全可以在最近的2Xcode 7 Beta版本中重现(包括昨晚的GM): 运行我的应用程序时,AFNetworking崩溃,AFURLConnectionOperation.m第154行出现EXC_BAD_访问消息。更准确地说,这里是stacktrace: thread #1: tid = 0x23b173, 0x000000010b89beaf CoreFoundation`___forwarding___ + 767, queue =

我遇到了一些非常奇怪的EXC_BAD_访问崩溃,这些崩溃完全可以在最近的2Xcode 7 Beta版本中重现(包括昨晚的GM):

运行我的应用程序时,AFNetworking崩溃,AFURLConnectionOperation.m第154行出现EXC_BAD_访问消息。更准确地说,这里是stacktrace:

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功能…

来回答我自己的问题,并将此留给可能遇到相同问题的任何人:


显然,Swift 2.0编译器不喜欢向闭包传递
inout
参数。我有一个闭包,可以用来进一步定制我的请求,该请求将类型为
NSMutableURLRequest
的对象作为inout参数。一旦更改此闭包以仅返回请求并删除
inout
后,一切又如预期一样工作了…

网络开发人员可能仍在努力使其API与Swift 2.0兼容。问题本身是我减少使用第三方API的一个原因。你是我的朋友。是的,7.1似乎有点混乱。我也有同样的问题,一段代码在Xcode 7 beta 6上运行良好,但现在在7.1上没有。你认为这是AFNetworking中的一个bug还是Swift编译器中的一个bug(因为它似乎在处理混乱的ARC代码)可以告诉我你到底做了什么吗。我也面临同样的问题