swift系列课程
访问控制
放在test类里面会报错,因为fileprivate获取的是整个文件的作用域,在test外面找不到Person就报错;放在test外面的话,private作用域和fileprivate一样都是在本文件内部,所以不会报错
直接在全局作用域下的private 等同于fileprivate,一般情况下,类型为private或者fileprivate,则成员\嵌套类型默认也是private或者fileprivate
如果结构体有private\fileprivate的存储实例属性,那么它的成员初始化器也是private\fileprivate
Person里面协议的实现方法run()要么大于等于Person的级别,要么大于Runnable协议的级别
Person里面run()默认是internal级别
扩展
Person里面run()默认也是fileprivate-----如果有显式设置扩展的访问级别,扩展添加的成员自动接收扩展的访问级别
如果没有显示设置扩展的访问级别,扩展添加的成员的默认访问级别,跟直接在类型中定义的成员一样
如果没有显示设置扩展的访问级别,扩展添加的成员的默认访问级别,跟直接在类型中定义的成员一样
将方法赋值给var\let sss
内存管理
ARC自动给弱引用设置nil时,不会触发属性观察器