问题标签 [nsurlsessionconfiguration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
498 浏览

ios - NSURLSessionConfiguration 总是返回 nil

我正在尝试访问NSURLSessionConfiguration
我尝试使用以下语句来检索NSURLSessionConfiguration.

声明 1。

上面的语句返回nil

声明 2。

上面的语句也返回nil

谁能告诉我NSURLSessionConfiguration上课有什么问题?

在此处输入图像描述

0 投票
1 回答
260 浏览

ios - 上传 NSURLSession 配置为 backgroundSessionConfiguration 的文件后是否可以运行代码

我喜欢在 backgroundSessionConfiguration 中使用 NSURLSession 的方法:

uploadTaskWithRequest:fromFile:

但是我需要在上传后运行一些代码来选择下一个文件。选择后,我想再次启动 NSURLSession 以使用 uploadTaskWithRequest:fromFile: 方法上传它

所以递归上传一堆文件

你知道这是否可能吗?

0 投票
2 回答
2018 浏览

ios - NSURLSession 和 NSDefaultRunLoopMode

使用时NSURLConnection,您可以选择使用以下方式安排连接NSRunLoop

如果用户滚动,传递NSDefaultRunLoopMode将有效地导致连接暂停,这对性能非常有用,因为用户体验从未受到下载的影响。

有没有办法获得类似的行为NSURLSession?我已通读文档并尝试了各种配置会话的方法,但均未成功。

0 投票
2 回答
331 浏览

ios7 - 使用 NSURLSessionConfigurations 在 ios7 中进行多个后台下载

我想知道如何一个接一个地下载一堆文件。就像如果我有 5 个文件要下载,我应该按照 1 complete 然后 2 、 2 然后 3 的顺序自动下载所有 5 个文件,这样所有五个文件都应该自动完成。它应该在我的应用程序的后台完成。提前致谢

0 投票
1 回答
1383 浏览

ios - NSURLSessionConfiguration timeoutIntervalForRequest 似乎不适用于后台会话

当会话设置为在后台工作时(通过 backgroundSessionConfiguration 调用),NSURLSessionConfiguration 的新超时属性似乎不起作用。

有谁知道真的是这样吗?

代码片段:

我需要做任何额外的事情才能让超时工作吗?

0 投票
1 回答
192 浏览

php - 使用 PHP 返回目录列表

我正在使用以下内容返回服务器上所有文本文件的列表。

我遇到的问题是,当我从我的应用程序执行这个 php 文件时,目录中只有一个文本文件,它按预期返回文件名的 JSON,但是当我重命名该文本文件或添加其他文件时,它会继续仅返回原始运行时存在的文件的名称。

我对 PHP 很陌生,我想知道我是否返回缓存数据而不是每次都刷新,或者这可能是我的应用程序发生的情况。

这是应用程序代码:

谢谢!

0 投票
3 回答
4618 浏览

ios - 使用 [NSURLSessionConfiguration backgroundSessionConfiguration] 时有没有办法消除延迟?

我正在尝试运行后台 NSURLSessionDownloadTask。但是,我注意到在任务实际开始之前大约需要 30 秒。当我使用 defaultSessionConfiguration 时,任务几乎立即开始。有没有办法在使用 backgroundSessionConfiguration 时立即触发 NSURLSessionDownloadTask?

下面是我使用 backgroundSessionConfiguration 时得到的结果:

这是日志输出。请注意,在调用“resume”方法之前会记录“Start uploading...”,并且在 NSURLSessionTaskDelegate 的 didSendData 方法中记录“Upload progress”。

仅供参考,相同的东西,但使用默认会话配置。

您可以看到控制台结果没有延迟是这样的:

编辑:使用 iOS 7.1,有时没有延迟。但是,仍然有大约 20 秒的延迟。

0 投票
3 回答
37526 浏览

ios - 如何使用 NSURLSession 和 NSURLCache 进行缓存。不工作

我有一个测试应用程序设置,即使用户在下载过程中切换应用程序,它也会成功地从网络下载内容。太好了,现在我有后台下载。现在我想添加缓存。我没有必要多次下载图像,系统设计的 b/c,给定一个图像 URL,我可以告诉你该 URL 背后的内容永远不会改变。所以,现在我想使用我读过很多的苹果内置的内存/磁盘缓存来缓存我的下载结果(而不是我在 NSCachesDirectory 中手动保存文件,然后在制作新文件之前检查那里请求,ick)。为了缓存在这个工作代码之上工作,我添加了以下代码:

创建会话时,我添加了两条新行(URLCache 和 requestCachePolicy)。

然后,只是为了超级冗余以尝试查看缓存成功,我将 NSURLRequest 行从

现在,当我第二次去下载该项目时,体验和第一次一样!下载需要很长时间,进度条的动画缓慢而稳定,就像原始下载一样。我要立即缓存中的数据!!我错过了什么???

- - - - - - - - - - - - - - 更新 - - - - - - - - - - - --------

好的,感谢 Thorsten 的回答,我在didFinishDownloadingToURL委托方法中添加了以下两行代码:

这很棒。它确认缓存正在增长。我想因为我使用的是 downloadTask(下载到文件而不是内存),这就是为什么 DiskCache 正在增长而不是内存缓存首先?我认为所有内容都会进入内存缓存,直到溢出,然后将使用磁盘缓存,并且可能在操作系统在后台杀死应用程序以释放内存之前将内存缓存写入磁盘。我是否误解了 Apple 的缓存是如何工作的?

这肯定是向前迈进了一步,但是我第二次下载文件所需的时间与第一次一样长(可能是 10 秒左右),并且以下方法会再次执行:

你对我上面的编辑有什么看法?为什么在后续请求中我没有看到文件很快返回?

如何确认文件是否在第二次请求时从缓存中提供?

0 投票
1 回答
2868 浏览

ios - nsurlsession 用于循环中的多个请求

我一直在尝试下载图像/txt,但我需要这样做,直到该 url 存在并下载该图像/txt 文件,所以我继续再次调用相同的方法,当我设置调试点时,我看到了这个线程队列

如果 url 正确,我在调试导航器中看不到任何队列,因为它不再调用方法。我将 AFNetworking 库引用到相同的库,但我想它的工作方式与我在 NSURLSession 中的工作方式相同,对吧?

案例:-我检查 url 是否存在,所以如果它存在,则加载两个 url(time.txt 和 image.png),否则调用 WebService(XmlParser)并继续检查以下文件的 url。

显示存在者。

还检查了这个AFNetworking Question但它没有帮助,因为我不想添加操作数量。我想加载任何存在的文件。

因为在AFNetworking/NSURLSession中无论是成功还是失败都会完成操作。


如果我做错了,请纠正我并帮助我解决这个问题。

0 投票
1 回答
459 浏览

ios - 调用 [NSURLSessionDataDelegate resume] 时的 SIGSEGV

我最近使用 iOS 7 上的新 NSURLSession 完成了我的第一个项目。

我构建了一个应用程序来探索 NSURLSession 的整个 API,实现各种任务: - 数据任务 - 下载任务 - 上传任务

我还使用后台会话实现了后台上传。经过数小时的调试和反复试验,我终于达到了整个应用程序可以正常工作的地步——对我来说就是这样。我将它发布给少数测试人员(< 5),其中一些人遇到了一个我似乎无法重现甚至无法追踪的错误。

我的代码的某个部分 - 在一些不相关的操作之后 - 负责恢复后台会话中可用的当前上传任务:

有时,该应用程序在我的日志中崩溃并出现以下异常(我正在使用曲棍球应用程序):

SIGSEGV

在:

有任何想法吗 ?关于它可能是什么的任何提示?

提前致谢!泽