前言
这段时间对iOS进行了一下深入学习,以前觉得项目用不上的东西都是装逼的扯淡的,其他不然,每个知识点的学习和认识都对你搭建自己的iOS知识体系有很大的帮助,让你更好的去理解一个iOSAPP是怎么运行的,你的代码为什么能实现你想要的效果。趁着项目结束没什么事情,回过头来看看Swift,一直用OC做项目,也没去管它,今天整理一下我这几天做的一个小demo,跟大家一起来学习学习Swift,也希望大家能多给我学习方法和建议。
今天做的demo算是项目中很常见的,请求网络数据,解析成model,然后刷新UITableView显示网络数据。如图:
demo总共分三部分,UI的创建,数据请求和解析,数据展示
UI创建
Swift语法和OC相比更简洁
Swift:self.tableView = UITableView(frame: self.view.bounds)
OC :_tableview = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, KWidth, KHight) style:UITableViewStylePlain];
一目了然,代码量少很多,Swift初始化是控件类名+(frame)
然后将控件添加到视图上:self.view.addSubview(self.tableView),OC调方法是[]里面空格+方法名
其他的以前属性的设置和OC基本差不多,就是语法上的差异,所以有OC基础的对Swift还是有一种熟悉的感觉
数据请求和解析
说到数据请求,我们都会想到AFNetworking,我在demo中用的是Alamofire,同一个作者,只是全新的Swift语言写的。JSON解析也是用的第三方框架SwiftyJSON,国产的,必须支持。使用pod导入框架,先放上关于Alamofire和Kingfisher的文章吧,我参考的网上朋友的
Swift Alamofire :https://www.jianshu.com/p/07b1ec36a689
SwiftyJSON:https://blog.csdn.net/ly410726/article/details/80235007
我在是用Charles随便抓的一个接口,get请求的,同样贴一个关于Charles的
Charles使用:https://www.cnblogs.com/mawenqiangios/p/8270238.html
下面是我用Alamofire的简单Get请求和数据简析:
具体的解析看数据类型变化,我的是字典里面套的数组,不过Swift多类型的检查很nice,你的类型对不上的时候会提示你。
数据展示
OC赋值model给cell是给cell添加一个model类型的属性,Swift不需要,世界在cell中写一个方法,参数是想要的数据就行,真的是舒服,不过这里涉及一个网络图片加载的,类似于OC中的SDWebImage,我使用的 Kingfisher,同样的使用pod导入,盘它。
Kingfisher :https://www.jianshu.com/p/c50d31ef38d1
总结
到此,我这demo就介绍完毕了,没什么很厉害的东西,就是很简单的Swift使用,算是我踏入Swift的第一步吧,简单的讲了三个和demo也是以后我我们接触到项目的框架,有兴趣的伙伴可以一起加入学习的行列,也希望在已经在路上的前辈大神都给知道意见,接口抓取的《懒人周末》,仅供学习参考,如有不妥,跟我说一声,我就删除。