1、定义一个协议:以后需要使用网络请求地方,实现请求就ok
//自定义http协议
protocol HttpProtocol{
//定义一个方法接收一个字典
func didRecieveResults(resultes:NSDictionary)
}
class HttpController:NSObject{
//定义一个可选代理
var delegate:HttpProtocol?
//定义一个方法运过来获取网络数据,接收参数为网址
func onSearch(url:String){
//定义一个NSURL
var nsUrl:NSURL=NSURL(string: url)!
//定义一个NSURLRequest
var request:NSURLRequest=NSURLRequest(URL: nsUrl)
//异步获取数据
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response:NSURLResponse!,data:NSData!,error:NSError!)->Void in
//由于我们获取的数据是json格式,所以我们可以将其转化为字典。
var jsonResult:NSDictionary=NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
//将数据传回给代理
self.delegate?.didRecieveResults(jsonResult)
})
}
}
2.在实现协议的类里重写didRecieveResults就行,如果不想用字典,可以转成String,修改协议里的网络请求即可。
func didRecieveResults(resultes:NSDictionary)
{
//do something
}