Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载

Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载,第1张

概述 NSURLSession类支持三种类型的任务:加载数据、下载和上传,即Data Task,DownLoad Task和Upload Task。Session Task是整个NSURLSession架构的核心目标。 Data Task用于加载数据,使用全局的sharedSession()和func dataTaskWithRequest方法创建,示例代码如下: import UIKitclas

NSURLSession类支持三种类型的任务:加载数据、下载和上传,即Data Task,DownLoad Task和Upload Task。Session Task是整个NSURLSession架构的核心目标。

Data Task用于加载数据,使用全局的sharedSession()和func dataTaskWithRequest方法创建,示例代码如下:

import UIKitclass VIEwController: UIVIEwController {    func sessionLoadData() {    //创建Session对象        var url:NSURL! = NSURL(string: "http://www.weather.com.cn/adat/sk/101010100.HTML")        //创建请求对象        var request:NSURLRequest = NSURLRequest(URL: url)        let session = NSURLSession.sharedSession()        var dataTask = session.dataTaskWithRequest(request,completionHandler:                        { (var data:NSData?,var response:NSURLResponse?,var error:NSError?)-> VoID in            //返回错误信息            if error != nil            {                println(error?.code)                println(error?.description)                }            else {                var JsonString = Nsstring(data: data!,enCoding: NSUTF8StringEnCoding)                println(JsonString)                                                }            }) as NSURLSessionTask        dataTask.resume()    }}

第二种DownLoad Task用于完成下载文件的任务

如果不需要获取进度,则使用全局的sharedSession()和func downLoadTaskWithRequest方法。

import UIKitclass VIEwController: UIVIEwController {    func sessionSimpleDownload() {    //创建Session对象        var url:NSURL! = NSURL(string: "http://www.yjz9.com/upload@R_404_6852@/2014/1126/20141126115435256.jpg")        //创建请求对象        var request:NSURLRequest = NSURLRequest(URL: url)        let session = NSURLSession.sharedSession()        var downloadTask = session.downloadTaskWithRequest(request,completionHandler: {(var location:NSURL?,var error:NSError?) ->VoID in            //输出下载文件原来的存放目录            println("location: \(location)")                        //location 位置转换            var locationPath = location?.path            //拷贝到我们自己的目录中            let documents:String = NSHomeDirectory() + "/documents/1.png"            //创建文件管理器            var @R_404_6852@Manager:NS@R_404_6852@Manager = NS@[email protected]()            @[email protected](locationPath!,topath: documents,error: nil)            println("location: \(documents)")        })        downloadTask.resume()}}

运行程序,然后查看路径;


文件已经被拷贝进去了。

上传文件和下载文件的方法非常相似:

    func sessionSimpleUpload() {    //创建Session对象        var url:NSURL! = NSURL(string: "http://www.iphonetrain.com/shop/data/")        //创建请求对象        var request:NSURLRequest = NSURLRequest(URL: url)        let session = NSURLSession.sharedSession()        //上传数据流        let documents:String = NSHomeDirectory() + "/documents/1.png"        var imgData = NSData(contentsOf@R_404_6852@: documents)        var uploadTask = session.uploadTaskWithRequest(request,fromData: imgData,completionHandler: {            (var data:NSData?,var error:NSError? )-> VoID in            println("上传完毕")        })        uploadTask.resume()}}
总结

以上是内存溢出为你收集整理的Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载全部内容,希望文章能够帮你解决Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存