iOS App仅在连接到调试器时崩溃

时间:2015-02-13 12:14:36

标签: ios debugging swift crash

我遇到一个问题,即只有一种情况下我的应用程序在连接到调试器时崩溃了。我的应用程序下载json数据并将其转换为核心数据对象。为此,我启动一个后台线程来加载它并使用successHandler处理导入:

RemoteConnectionService.sharedInstance.sendRequest(UserRequest(userID: user!.webID.integerValue), successHandler: { requestHandler, result in
        var userData = result["user"] as! [String: AnyObject]
        self.user?.update(userData)
        self.tableView.reloadData()
    }, errorHandler: nil)

这可以按预期工作。在主线程上调用successHandler,核心数据得到更新。但是在做这个特殊请求时(它始终只发生这个请求)Xcode停止指向

class AppDelegate: UIResponder, UIApplicationDelegate

没有特定的失败原因。这里是回溯(通过bt):

* thread #1: tid = 0x6ab4b, 0x00000001051b19c0 libobjc.A.dylib`objc_release + 16, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00000001051b19c0 libobjc.A.dylib`objc_release + 16
    frame #1: 0x00000001051b28cd libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 591
    frame #2: 0x00000001082348d8 CFNetwork`-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 207
    frame #3: 0x0000000108234a37 CFNetwork`-[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 48
    frame #4: 0x00000001081043a7 CFNetwork`___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 107
    frame #5: 0x00000001081d1891 CFNetwork`___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 273
    frame #6: 0x00000001080ef6e6 CFNetwork`RunloopBlockContext::_invoke_block(void const*, void*) + 72
    frame #7: 0x00000001057c13d4 CoreFoundation`CFArrayApplyFunction + 68
    frame #8: 0x00000001080ef5a7 CFNetwork`RunloopBlockContext::perform() + 133
    frame #9: 0x00000001080ef3e6 CFNetwork`MultiplexerSource::perform() + 256
    frame #10: 0x00000001080ef1fc CFNetwork`MultiplexerSource::_perform(void*) + 72
    frame #11: 0x00000001057ee4b1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #12: 0x00000001057e437d CoreFoundation`__CFRunLoopDoSources0 + 269
    frame #13: 0x00000001057e39b4 CoreFoundation`__CFRunLoopRun + 868
    frame #14: 0x00000001057e33e6 CoreFoundation`CFRunLoopRunSpecific + 470
    frame #15: 0x000000010abdba3e GraphicsServices`GSEventRunModal + 161
    frame #16: 0x00000001063cab60 UIKit`UIApplicationMain + 1282
  * frame #17: 0x00000001049556b7 App`main + 135 at AppDelegate.swift:13
    frame #18: 0x00000001088fd145 libdyld.dylib`start + 1

我不能到达的地方是,当试图在仪器中对其进行分析或仅在没有Xcode的情况下在模拟器中运行它时它可以正常工作。在设备上,无论如何,它都会在特定请求中崩溃。

设备回溯看起来有点不同:

* thread #1: tid = 0x19e6ab, 0x0000000192490174 libobjc.A.dylib`objc_release + 20, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x13723bec8)
    frame #0: 0x0000000192490174 libobjc.A.dylib`objc_release + 20
    frame #1: 0x0000000192491724 libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 564
    frame #2: 0x00000001817d2e08 CFNetwork`-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 216
    frame #3: 0x00000001817d2f7c CFNetwork`-[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 60
    frame #4: 0x00000001816a78e4 CFNetwork`___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 104
    frame #5: 0x0000000181770540 CFNetwork`___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 104
    frame #6: 0x0000000181693b54 CFNetwork`RunloopBlockContext::_invoke_block(void const*, void*) + 76
    frame #7: 0x0000000181c10aac CoreFoundation`CFArrayApplyFunction + 68
    frame #8: 0x0000000181693a00 CFNetwork`RunloopBlockContext::perform() + 136
    frame #9: 0x00000001816938b4 CFNetwork`MultiplexerSource::perform() + 312
    frame #10: 0x00000001816936e0 CFNetwork`MultiplexerSource::_perform(void*) + 68
    frame #11: 0x0000000181ce69ec CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    frame #12: 0x0000000181ce5c90 CoreFoundation`__CFRunLoopDoSources0 + 264
    frame #13: 0x0000000181ce3d40 CoreFoundation`__CFRunLoopRun + 712
    frame #14: 0x0000000181c110a4 CoreFoundation`CFRunLoopRunSpecific + 396
    frame #15: 0x000000018adab5a4 GraphicsServices`GSEventRunModal + 168
    frame #16: 0x0000000186542aa4 UIKit`UIApplicationMain + 1488
  * frame #17: 0x0000000100069c8c App`main + 164 at AppDelegate.swift:13
    frame #18: 0x0000000192ae6a08 libdyld.dylib`start + 4

有关如何调试此问题的任何建议?非常感谢:)

0 个答案:

没有答案