
1、open与public的区别
- public:能够别任何人访问,可是不能够被其余module复写和继承。
- open:能够被任何人访问,能够被继承和复写。
2、struct与class 的区别
3、swift把struct做为数据模型
3.1优势
- 安全性: 由于 Struct 是用值类型传递的,它们没有引用计数。
- 内存: 因为他们没有引用数,他们不会由于循环引用致使内存泄漏。
- 速度: 值类型一般来讲是以栈的形式分配的,而不是用堆。所以他们比 Class 要快不少!
- 拷贝:Objective-C 里拷贝一个对象,你必须选用正确的拷贝类型(深拷贝、浅拷贝),而值类型的拷贝则很是轻松!
- 线程安全: 值类型是自动线程安全的。不管你从哪一个线程去访问你的 Struct ,都很是简单。
3.2 缺点
- Objective-C与swift混合开发:OC调用的swift代码必须继承于NSObject。
- 继承:struct不能相互继承。
- NSUserDefaults:Struct 不能被序列化成 NSData 对象。
参考文章
Swift 浅谈Struct与Classswift