将进度从 NSURLSession 发送到 ViewController [swift - iOS]
Posted
技术标签:
【中文标题】将进度从 NSURLSession 发送到 ViewController [swift - iOS]【英文标题】:Send Progress from NSURLSession to ViewController [swift - iOS] 【发布时间】:2016-02-07 10:01:17 【问题描述】:我正在开发一个在后台处理一些下载的应用程序。我将文件移动到文档目录并以原始名称保存(使用downloadTask.originalRequest?.URL!.pathExtension
)。到目前为止一切顺利。
使用
URLSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)
我可以在下载时在控制台中打印出进度。但是,如果我在手机上使用该应用程序,这对我没有帮助。我期望做的是在初始化下载的视图中调用一个函数来更新进度条。但我不知道怎么称呼它。
有谁知道我可以从哪个UIViewController
(实际上大部分时间是TableCellViewController
)找到我开始下载以及如何将进度发送到ViewController
的函数?
【问题讨论】:
保存您的单元格索引路径、下载会话和任务标识符 【参考方案1】:我想告诉你一个关于这个问题的好教程。 NSURLSession Tutorial
【讨论】:
谢谢,我将尝试以这种方式实现它。 我花了整整一个晚上。但是:它有效,我想我现在比以前更了解代表了。非常感谢! 如果我有时间……这是我正在做的一个“只是为了好玩”的项目。在我的正常工作中,我与编码没有任何关系(可能只是一点点 python 或 VB Excel 宏——通常的业务 casper 的东西) 去年,我在没有编程经验的情况下开始学习 Swift。我是等级来帮助你的。你可以在 Twitter 上和我聊天。相同的 ID @Lanaya_HSIEH。【参考方案2】:委托常用于以下情况
当一个类需要向另一个类传达一些信息时 当一个类想要允许另一个类自定义它时 这些类不需要事先了解彼此的任何信息,除非委托类符合所需的协议。
在下面的文章中,您可以了解如何在 Objective-C 和 Swift 2.0 中创建委托。
How do I create delegates in Objective-C?
【讨论】:
如果对你有好处,我可以用一个例子构建一个项目,但如果你想要这个,请告诉我。 谢谢,我实际上将下载任务委托给下载管理器类。我缺少的是从委托人返回给委托人的信息。我将尝试像在 Lanaya 链接的教程中那样实现它。以上是关于将进度从 NSURLSession 发送到 ViewController [swift - iOS]的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSURLSession 时无法调用 didReceiveData