iOS – 后台会话不支持完成处理程序块。 代之以使用委托
我使用后台代码进行networking活动。 但是,我遇到了下面的崩溃日志错误。
完成处理程序块在后台会话中不受支持。 代之以使用委托。
请提供解决此问题的指针。
NSURLSessionConfiguration* config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier]; config.sessionSendsLaunchEvents = YES; config.allowsCellularAccess = YES; config.discretionary = YES; NSURLSession* session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil]; NSURLSessionDownloadTask* downloadTask = [session downloadTaskWithRequest:request]; [downloadTask resume];
崩溃日志
0 CoreFoundation __exceptionPreprocess + 120 1 libobjc.A.dylib objc_exception_throw + 52 2 CFNetwork -[__NSURLBackgroundSession validateSerializabilityForRequest:completion:] + 196 3 CFNetwork -[__NSURLBackgroundSession _onqueue_downloadTaskForRequest:resumeData:completion:] + 48 4 CFNetwork __90-[__NSURLBackgroundSession downloadTaskForRequest:downloadFilePath:resumeData:completion:]_block_invoke + 32 5 CFNetwork __68-[__NSURLBackgroundSession performBlockOnQueueAndRethrowExceptions:]_block_invoke + 72 6 libdispatch.dylib _dispatch_client_callout + 12 7 libdispatch.dylib _dispatch_barrier_sync_f_invoke + 80 8 CFNetwork -[__NSURLBackgroundSession performBlockOnQueueAndRethrowExceptions:] + 148 9 CFNetwork -[__NSURLBackgroundSession downloadTaskForRequest:downloadFilePath:resumeData:completion:] + 188 ! 10 -[CRNSURLSessionTaskProxy initDownloadTaskWithSession:request:completionHandler:dispatch:] + 152 11 -[CRNSURLSessionProxy downloadTaskWithRequest:completionHandler:] + 108 12 -[CRNSURLSessionProxy downloadTaskWithRequest:] + 20
你需要在你的downloadTask中添加一个委托,然后实现这里描述的委托方法: link
这里也是很好的教程: 链接
- UINavigationController pushViewController在中途暂停/冻结
- iOS 5和Three20 SDK
- 使用Graph API或FQL将所有照片包含在单个Facebook供稿中?
- 使用多个UICollectionView,出现错误,“…必须用非零布局进行初始化”
- 我应该删除行为UIPushBehavior – 我正在添加许多推送
- 应用程序开发的入门故事
- 无法加载带有标识符的包中的nib引用的映像
- 使用滑块的模糊效果无法正常工作
- iOS UITableViewCell,UICollectionViewCell,UITableViewHeaderFooterView和UICollectionReusableView出队和注册-使用Swift协议和泛型