Ray*_*yan 6 crash objective-c ios nsurlsession
为什么通过其配置与NSURLSession连接需要花费很长时间才能在启动时使应用程序崩溃:"未能及时启动"?
我在许多iOS应用程序中看到过类似的故障转储,包括NY Times iOS应用程序和Evernote应用程序.
[NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:queue]
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
Thread 0:
0 libsystem_kernel.dylib 0x3afb7aa0 semaphore_wait_trap + 8
1 libdispatch.dylib 0x3af04d3d _dispatch_semaphore_wait_slow + 173
2 CFNetwork 0x2febd8e3 -[__NSCFBackgroundSessionBridge setupBackgroundSession] + 379
3 CFNetwork 0x2fef18a1 +[__NSCFSessionBridge bridgeForConfiguration:session:queue:] + 153
4 CFNetwork 0x2fef6497 -[__NSCFURLSession initWithConfiguration:delegate:delegateQueue:] + 395
5 CFNetwork 0x2fef6eb7 +[__NSCFURLSession sessionWithConfiguration:delegate:delegateQueue:] + 295
Run Code Online (Sandbox Code Playgroud)
请参阅应用程序特定信息:应用程序未能及时启动 (iOS)?。
基本上有两件事需要记住:
启动后,您只有几秒钟的时间来完成启动过程。任何长时间运行的代码都应在应用程序启动后异步调用。
绝对确保回调/块/闭包/等中的任何 UI 代码都在主线程上调用。你必须强迫它这样做。