ios - 我如何调用这个复杂的 NSURLSession?

标签 ios xcode swift

我知道这是我想要的方法,使用 didFinishDownloadingToURL,但是,我是 swift 的新手,不清楚如何调用这个方法。你能举个例子吗?谢谢。

class DownloadDelegate : NSObject, NSURLSessionDownloadDelegate {
    func URLSession(session: NSURLSession,
        downloadTask:NSURLSessionDownloadTask,
        didFinishDownloadingToURL location: NSURL) {
            println("YO")
    }
}

最佳答案

一个简单的例子

class DemoDownloadClass: NSObject,NSURLSessionDelegate,NSURLSessionDownloadDelegate {
var session:NSURLSession?
var downloadUrl:String
var completion:(NSURL)->()
init(url:String,completionBlock:(location:NSURL)->()){
    completion = completionBlock
    downloadUrl = url
    super.init()
    session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: self, delegateQueue: nil)
}
func start(){
    let request = NSURLRequest(URL: NSURL(string: downloadUrl)!);
    let downloadTask = session!.downloadTaskWithRequest(request)
    downloadTask.resume()
}
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
    completion(location)
}
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
    //here get progress
}
}

然后怎么用

class DemoTableController: UIViewController{
var test:DemoDownloadClass?
override func viewDidLoad() {
    test = DemoDownloadClass(url: "yoururl", completionBlock: { (location) -> () in
        //Use location to get file,I did not handle error here.Just as an exmaple
    })
    test?.start()
}
}

关于ios - 我如何调用这个复杂的 NSURLSession?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30775149/

相关文章:

ios - Swift 3.0 允许权限警报不间断

ios - 禁止选择单个 UITableViewCell

swift - Nav BarItem 返回上一个 View

ios - 在没有 Game Center 的 iOS 应用程序中实现成就

ios - 如何真正清除 UITextView...

IOS Searchbar 返回错误数据

ios - Swift UITest 处理所有测试的开始和所有测试用例的完成

ios - 尽管停止使用它们,但仍在获取动画

ios - MMDrawerController 我需要在哪里添加 sidemen 按钮?

ipad - swift iPad 表格 View 不透明