2015-09-10 22 views
9

biegnę do niektórych naprawdę dziwnych wypadków EXC_BAD_ACCESS które są całkowicie powtarzalne z ostatnich 2 Xcode 7 Beta wersjach (w tym GM od ostatniej nocy):Swift 2.0 Losowe EXC_BAD_ACCESS

Podczas uruchamiania mojej aplikacji AFNetworking wywala z komunikatem EXC_BAD_ACCESS zgodnie AFURLConnectionOperation.m 154. dokładniej, jest tu 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 

ustawić włączony Zombie Obiekty w moim systemie i mam następujący błąd

*** -[NSMutableURLRequest release]: message sent to deallocated instance 0x7fc4d8acc460 

Czy ktokolwiek z was ma pojęcie, co powoduje awarię? Używanie Xcode 6 działa jak zaklęcie, ale naprawdę chciałbym użyć nowych funkcji Swift w moim kodzie ...

+0

Może być deweloperem AFNetworking nadal działa, aby ich API kompatybilny ze Swift 2.0. Samo pytanie to jeden powód, dla którego ograniczam korzystanie z interfejsów API stron trzecich. – Kampai

+1

Jesteś [nie sam] (https://github.com/AFNetworking/AFNetworking/issues/2937) mój przyjaciel. –

+0

Tak, to moje;) –

Odpowiedz

1

Aby odpowiedzieć na moje własne pytanie i pozostawić to tutaj dla każdego, kto może być uruchomiony w ten sam problem:

Wygląda na to, że kompilator Swift 2.0 nie lubi, gdy zamykanie jest przekazywane parametrem inout. Miałem zamknięcie w miejscu, które może być wykorzystane do dalszego dostosowania mojego żądania, które przyjęło obiekt typu NSMutableURLRequest jako parametr inout. Po zmianie tego zamknięcia, aby po prostu zwrócić żądanie i usunąć inout wszystko działa zgodnie z oczekiwaniami ...

+0

możesz mi powiedzieć, co faktycznie zrobiłeś. ja też mam ten sam problem –