swift学习第五天项目实战-知乎日报客户端(一)网络交互NSURLConnection古成风云

在KDNewsListApi类,并且实现下面的方法

1funcgetNewsData(){23varurl:NSURL=NSURL(string:self.url)45varrequest:NSURLRequest=NSURLRequest(URL:url)67varconnection=NSURLConnection(request:request,delegate:delegate,startImmediately:false)//初始化一个connection89println("NewsListUrlis:\(self.url)")1011connection.start();//通过start方法启动连接1213}

在KDNewsListController类,实现以下接口函数

funcconnection(didReceiveResponse:NSURLConnection!,didReceiveResponseresponse:NSURLResponse!){//Recievedanewrequest,clearoutthedataobjectself.data=NSMutableData()}funcconnection(connection:NSURLConnection!,didReceiveDatadata:NSData!){//Appendtherecievedchunkofdatatoourdataobjectself.data.appendData(data)}funcconnectionDidFinishLoading(connection:NSURLConnection!){varerr:NSErrorvarjsonResult:NSDictionary=NSJSONSerialization.JSONObjectWithData(self.data,options:NSJSONReadingOptions.MutableContainers,error:nil)asNSDictionaryprint("NewsListJsonData:\(jsonResult)")}

协议2

在KDNewsDetailApi类,并且实现下面的方法

1funcgetNewsData(){23varurl:NSURL=NSURL(string:self.url)45varrequest:NSURLRequest=NSURLRequest(URL:url)67varconnection=NSURLConnection(request:request,delegate:delegate,startImmediately:false)89println("NewsDetailUrlis:\(self.url)")1011connection.start()1213}

初始化一个NSURLConnection类,并且执行start方法

在KDNewsDetailController类,实现以下接口函数

1funcconnection(didReceiveResponse:NSURLConnection!,didReceiveResponseresponse:NSURLResponse!){23//Recievedanewrequest,clearoutthedataobject45self.data=NSMutableData()67}89funcconnection(connection:NSURLConnection!,didReceiveDatadata:NSData!){1011//Appendtherecievedchunkofdatatoourdataobject1213self.data.appendData(data)14}151617funcconnectionDidFinishLoading(connection:NSURLConnection!){1819varerr:NSError2021varjsonResult:NSDictionary=NSJSONSerialization.JSONObjectWithData(self.data,2223options:NSJSONReadingOptions.MutableContainers,2425error:nil)asNSDictionary2627print("NewsDetailJsonData:\(jsonResult)")2829}运行的结果如下:

协议1:

{

"date":"20140806",

"stories":[

"title":"神经营销学:直接「挖」出你脑中对商品的偏好",

"ga_prefix":"080612",

"images":[

],

"type":0,

"id":4074172

},

"title":"「用灵魂在唱歌」,评委老这么说",

"ga_prefix":"080610",

"id":4074299

"title":"科学地告诉你,为什么有些谣言能在网上活得特开心",

"ga_prefix":"080607",

"id":4074494

"title":"为什么我们看到的国产电视剧,永远只有那么几种",

"id":4073625

"title":"《白发魔女传》:又毁了一个经典武侠人物",

"id":4074215

"title":"瞎扯·如何正确地吐槽",

"ga_prefix":"080606",

"id":4075350

}

"top_stories":[

"title":"富士康都停工了:昆山这起特大粉尘爆炸是怎么回事?",

"ga_prefix":"080511",

"id":4073525

]

协议2:

"image_source":"《白发魔女传之明月天国》",

"js":[],

"id":4074215,

"css":[

两个协议测试成功,完成接口部分,下一章节会进行UI部分的开发。

另外写代码的时候swift遇到一点小问题,网上下载了一个项目,后来xcode编辑器里面的语法高亮都变成了灰色,很怪异,估计是命名里面有swift关键字的原因吧(有待研究),把项目关了重启xcode就ok了

THE END
1.UDS诊断入门例子:023E80 00 00 00 00 00,发送一个3E服务的报文,保持非默认会话状态。80表示无需回复。 $27安全访问 $27安全访问:ECU当中有很多数据是整车厂独有的,并不希望开放给所有客户,它需要做一个保密的设定。我们在读取一些特殊数据的时候,要先进行一个安全解锁。ECU上电之后是一个锁定的状态(Locked),我们通过$...https://blog.csdn.net/u014680086/article/details/123242316