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