1 | Github上的实用的Swift开源控件(后续看到再补充) |
访问控制可以限定其他源文件或模块中代码对你代码的访问级别。
Swift 为代码中的实体提供了四种不同的访问级别:public、internal、fileprivate、private。
Swift 提供了泛型让你写出灵活且可重用的函数和类型。
Swift 标准库是通过泛型代码构建出来的。
Swift 的数组和字典类型都是泛型集。
泛型使用了占位类型名(在这里用字母 T 来表示)来代替实际类型名(例如 Int、String 或 Double)。
协议规定了用来实现某一特定功能所必需的方法和属性。
1 | protocol SomeProtocol { |
要使类遵循某个协议,需要在类型名称后加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵循多个协议时,各协议之间用逗号,分隔。
扩展就是向一个已有的类、结构体或枚举类型添加新功能。
扩展可以对一个类型添加新的功能,但是不能重写已有的功能。
Swift 中的扩展可以:
Swift 中类型转换使用 is 和 as 操作符实现,is 用于检测值的类型,as 用于转换类型。
类型检查使用 is 关键字。
操作符 is 来检查一个实例是否属于特定子类型。若实例属于那个子类型,类型检查操作符返回 true,否则返回 false。
Swift 使用自动引用计数(ARC)这一机制来跟踪和管理应用程序的内存
通常情况下我们不需要去手动释放内存,因为 ARC 会在类的实例不再被使用时,自动释放其占用的内存。
但在有些时候我们还是需要在代码中实现内存管理。
使用感叹号(!)可选链实例
1 | class Person { |
想使用感叹号(!)强制解析获得这个人residence属性numberOfRooms属性值,将会引发运行时错误,因为这时没有可以供解析的residence值。
在一个类的实例被释放之前,析构函数被立即调用。
用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型。
在 Swift 中,类可以调用和访问超类的方法,属性和下标脚本,并且可以重写它们。
没有继承其它类的类,称之为基类(Base Class)。
1 | class StudDetails { |