Swift - 协议
1.既可以定义属性,也可以定义方法
2.属性和方法,在protocol中都不能有默认实现
3.定义属性时必须指定属性时可读写/可读/可写 {get set}
4.默认情况下,被遵守协议的类/结构体等必须实现,如果只希望协议被类遵守,可以在协议名字后面加 :class
3.如果希望协议中的方法或者属性时可选,首先在protocol前加@objc 在可选的方法或属性前加@objc
4.协议的默认实现必须在协议的extension中提供默认实现
5.协议/结构体中类方法使用static关键字
6.只有协议中允许使用Self
7.where 限制协议遵守的类型**
8.associatedtype关键字来声明一个类型的占位符作为协议定义的一部分
Swift - 访问控制
访问权限 open > public > interal > fileprivate > private
private
访问级别所修饰的属性或者方法只能在当前类里访问
fileprivate
访问级别所修饰的属性或者方法在当前的swift源文件里可以访问
internal默认访问级别
访问级别所修饰的属性或者方法在源代码所在的整个模块都可以访问,如果是框架或者库代码,则在整个框架内部都可以访问,框架外部代码所引用是,则不可以访问。
public
可以被任何人访问,但其他module中不可以被override和继承,而在module内可以被override和继承
open
可以被任何人使用,包括override和继承
独立思考,不屈从世界,安静内心,疯子一样行动,不理会周遭的嘈杂,有节奏的行走在coding~