从网络请求数据

NSURL

这是最最基础的类,访问网络资源离不开它,它有不少很有用的方法,比如从字符串创建一个URL。还有创建一个相对于其他URL的URL

let url = NSURL(string: urlString)
let relativeurl = NSURL(string: "\(Int(width))/\(Int(height))/sports/", relativeToURL: NSURL(string:"http://lorempixel.com/"))
relativeurl?.host//lorempixel.com/

对于文件的URL可以使用NSURL(fileURLWithPath:)
NSURL是不可变的,如果在创建之后还想改变它,请使用NSMutableURL。

NSURLRequest

NSURLRequest描述如何访问一个URL

NSURLRequest(URL:,cachePolicy:,timeoutInterval:)

可以设置它的缓存策略,超时时间等

var r = NSMutableURLRequest(URL: NSURL(string: "e")!, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringCacheData, timeoutInterval: 2.0)
r.HTTPMethod//HTTP请求方法POST,GET等
r.allHTTPHeaderFields//HTTP请求头部
r.HTTPBody//HTTP请求体
r.allowsCellularAccess

NSURLSession

有个哥们写的很好,我转载了,这里就不啰嗦了。

        if let url = NSURL(string: urlString) {
            let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: self, delegateQueue: myQueue)
            let dataTask = session.dataTaskWithURL(url, completionHandler: { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in
                if data == nil {
                    self.imageView.image = nil
                } else {
                    if let image = NSImage(data: data!) {
                        dispatch_async(dispatch_get_main_queue(), { () -> Void in
                            self.imageView.image = image
                        })
                    }
                }
            })
            dataTask.resume()
        }

你可能感兴趣的:(从网络请求数据)