访问控制,内存管理

swift系列课程

image.png
image.png
image.png
image.png
image.png
布尔类型成立就往下走,不成立就报错打印后面的提示
image.png
image.png

访问控制

image.png
image.png
image.png
image.png
image.png
image.png
放在test类里面会报错,因为fileprivate获取的是整个文件的作用域,在test外面找不到Person就报错;放在test外面的话,private作用域和fileprivate一样都是在本文件内部,所以不会报错
image.png
直接在全局作用域下的private 等同于fileprivate,一般情况下,类型为private或者fileprivate,则成员\嵌套类型默认也是private或者fileprivate
image.png
image.png
如果结构体有private\fileprivate的存储实例属性,那么它的成员初始化器也是private\fileprivate
image.png
协议
image.png
image.png
image.png
image.png
Person里面协议的实现方法run()要么大于等于Person的级别,要么大于Runnable协议的级别
Person里面run()默认是internal级别

扩展

image.png
Person里面run()默认也是fileprivate-----如果有显式设置扩展的访问级别,扩展添加的成员自动接收扩展的访问级别
如果没有显示设置扩展的访问级别,扩展添加的成员的默认访问级别,跟直接在类型中定义的成员一样
如果没有显示设置扩展的访问级别,扩展添加的成员的默认访问级别,跟直接在类型中定义的成员一样
可以单独给扩展添加的成员设置访问级别
可以单独给扩展添加的成员设置访问级别
不能给用于遵守协议的扩展显式设置扩展的访问级别
image.png

将方法赋值给var\let sss


image.png
image.png
image.png

内存管理

image.png
let 无法保证p可以赋值为nil
ARC自动给弱引用设置nil时,不会触发属性观察器
image.png
image.png
image.png

image.png
image.png
非逃逸闭包
image.png
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。