dar*_*iaa 7 objective-c ios nsurlsession nsurlsessiondownloadtask nsurlsessiontask
最初我认为如果NSURLSessionDownloadTask成功完成 URLSession:downloadTask:didFinishDownloadingToURL:方法将被调用,如果由于某种原因失败 - URLSession:task:didCompleteWithError:.它在模拟器上按预期工作(对于一个下载任务只调用此方法中的一个)但在设备上情况并非如此:如果失败,这两个方法都被调用,URLSession:downloadTask:didFinishDownloadingToURL:是第一个.(这两种方法都在参数中传递相同的任务)
有什么我想念的吗?
使用完成块而不是委托:
NSURLSessionDownloadTask *mySessionDownloadTask = [myURLSession downloadTaskWithRequest:myRequest completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error)
{
dispatch_async(dispatch_get_main_queue(), ^{
if(!error)
{
// Finish loading
}
else
{
// Handle error
});
}];
Run Code Online (Sandbox Code Playgroud)
注意:如果您没有获取主队列,则与用户界面相关的任何更新都将被延迟,从而导致意外的行为。
| 归档时间: |
|
| 查看次数: |
2110 次 |
| 最近记录: |