Var*_*han 10 iphone ipad ios ios8
我的应用程序在某些情况下崩溃.无法找到崩溃的原因和地点.
以下是崩溃日志(iPad/iOS 8.0.2).
Hardware Model: iPad2,5
OS Version: iOS 8.0.2 (12A405)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x306b3dfc __pthread_kill + 8
1 libsystem_pthread.dylib 0x30733d0e pthread_kill + 58
2 libsystem_c.dylib 0x30653934 abort + 72
3 libc++abi.dylib 0x2f864bb8 abort_message + 84
4 libc++abi.dylib 0x2f87e66a default_terminate_handler() + 262
5 libobjc.A.dylib 0x30052f0e _objc_terminate() + 190
6 libc++abi.dylib 0x2f87bdec std::__terminate(void (*)()) + 76
7 libc++abi.dylib 0x2f87b5ac __cxa_throw + 108
8 libobjc.A.dylib 0x30052d46 objc_exception_throw + 246
9 CoreFoundation 0x225dfe58 +[NSException raise:format:arguments:] + 100
10 Foundation 0x232af2c4 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 88
11 BaseBoard 0x270a08d8 __25-[BSAction sendResponse:]_block_invoke + 140
12 libdispatch.dylib 0x305bc99c _dispatch_barrier_sync_f_invoke + 44
13 BaseBoard 0x270a0842 -[BSAction sendResponse:] + 98
14 UIKit 0x25fd54d0 -[UIFetchContentInBackgroundAction sendResponse:] + 212
15 libdispatch.dylib 0x305b3610 _dispatch_call_block_and_release + 8
16 libdispatch.dylib 0x305b35fc _dispatch_client_callout + 20
17 libdispatch.dylib 0x305be2b2 _dispatch_main_queue_callback_4CF$VARIANT$mp + 714
18 CoreFoundation 0x225a5e5c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4
19 CoreFoundation 0x225a457c __CFRunLoopRun + 1508
20 CoreFoundation 0x224f1dac CFRunLoopRunSpecific + 472
21 CoreFoundation 0x224f1bbe CFRunLoopRunInMode + 102
22 GraphicsServices 0x2985404c GSEventRunModal + 132
23 UIKit 0x25abda2c UIApplicationMain + 1436
24 MyApp 0x000fb9f2 main (main.m:15)
25 libdyld.dylib 0x305eeaac start + 0
Run Code Online (Sandbox Code Playgroud)
提前致谢..
小智 17
与堆栈跟踪对应的异常消息是:
"这个请求已被绝育 - 你不能调用-sendResponse:两次,也不能编码后"
虽然不可能单独从堆栈中确定,但您很可能称为completionHandler传递给您的app delegate的-application:performFetchWithCompletionHandler:方法两次.
后台获取由操作系统根据您在 setMinimumBackgroundFetchInterval: 方法中设置的值触发。如果后台获取时间过长,您所看到的看起来就像操作系统对您的应用程序执行的操作。
您被分配了一段时间(30 秒)来完成工作。如果您没有完成,操作系统将终止您的应用程序并出现上述异常。在此处阅读有关如何延长所需时间的更多信息。
基本上,您需要请求更多时间来完成您的后台工作,如下所示:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{
// Clean up any unfinished task business by marking where you
// stopped or ending the task outright.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task, preferably in chunks.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3571 次 |
最近记录: |