换了新公司,开启了swift的大门,任何语言的学习都需要项目的支撑,以前学习swift只是停留在看书,看语法~来的新的公司,需要使用swift,赶鸭子上架,经历了2个月,项目完成,但是感觉自己的swift还是欠缺很多,这里把自己遇到的一些问题,总结一下,要是有人搜到了这篇文章,希望对你有所帮助。
在swift中值类型是深拷贝,引用类型为浅拷贝。至于什么是深拷贝,什么是浅拷贝就不解释了,相信大家都懂得,不懂得请自行百度。
swift引用类型包括:(引用类型的区域为:堆区)
class 和闭包
小tip查看引用类型的内存地址的方法
查看内存地址引用类型的比较
使用 === 或者 !== 比较引用类型的引用是否一致,或者是遵守Equatable协议使用 == 或 !=
值类型(栈区)
包括:struct、enum、tuple、 Int、Double、Float、String、array、Dictionary、Set
内存地址的打印
彩蛋部分~~~重点如何实现class类的深拷贝(换而言之model如何实现深拷贝)
基本的需求
NO1.页面跳转的时候属性的赋值
NO2.页面的一些用户操作
实现办法
第一种 最简单的方法
model 用struct类,放弃class类
第二种
1、继承NSObject,NScopy
2.实现copy方法
3.使用
使用方法注意点
我们一般的从后台获取的数据肯定是很长,结构一般都比较复杂,所以很多时候,会出来model类中有另一个model的类型,这种在做深拷贝的时候,另一个model也需要实现深拷贝,在赋值的时候单独copy
好咯就这样了不想写了,不明白的自行百度吧
附上我写的一个demo吧
我的json解析工具使用objectMapper
所以比较麻烦
可以参考
demo链接demo链接
网友评论