gpt4 book ai didi

ios - 带有 URL 的 NSURLSession downloadTask 返回 nil

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:30 25 4
gpt4 key购买 nike

我的应用程序中的 NSURLSessionDownloadTask 有问题我用代码创建了数百个下载任务:

NSURLSessionDownloadTask * task = [_urlSession downloadTaskWithURL:downloadUrl];
NSLog(@"session: %@, download task %@ for url: '%@'",_urlSession, task, downloadUrl);
if (!task)
{
NSLog(@"ooops no task");
}else
{

}

在 xcode 控制台中,我有这样的消息:

2014-03-28 11:23:39.297 MYAPP[3838:60b] session: <__NSCFURLSession: 0x19471e70>, download task (null) for url: 'http://xxx.cloudfront.net/seminarcontent/nsm_photos_11_24d8505e-4ddd-4e9b-baef-a90d5e322702.jpg'

我还在 Organizer 的控制台中看到这条消息:

nsnetworkd[322] <Error>: __NSCFLocalDownloadFile: error 2 creating temp file: /private/var/mobile/Applications/MYAPPGUID-BD21-4C5A-8DB6-845D80BE75E3/Library/Caches/com.apple.nsnetworkd/CFNetworkDownload_R91Hqn.tmp

NSURLSession 创建之前:

_urlSession = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration  backgroundSessionConfiguration:sessionIdenttificator] delegate:self delegateQueue:nil];

所有 url 均有效,并且仅当我在应用启动后立即开始下载时才会发生这种情况

请分享您对我的问题的看法。提前致谢。

更新:

我还添加了缓存目录检查,以确保在我开始下载之前它已经存在但没有任何改变

编辑

附加信息,我无法在模拟器中或在处于 Debug模式(启用断点)的设备上重现错误。

最佳答案

最后,经过几天的调试,找到了部分解决方案。

  @synchronized(_urlSession)
{
task = [_urlSession downloadTaskWithURL:downloadUrl];
}

我在我的代码中添加了锁,现在一切正常,但我想这不是解决方案,只是一种避免问题的方法。

感谢@Jody Hagins 提供的非常有用的评论。

关于ios - 带有 URL 的 NSURLSession downloadTask 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com