
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一樣都是在本文件內(nèi)部,所以不會報錯

image.png

直接在全局作用域下的private 等同于fileprivate,一般情況下,類型為private或者fileprivate,則成員\嵌套類型默認(rèn)也是private或者fileprivate

image.png

image.png

如果結(jié)構(gòu)體有private\fileprivate的存儲實例屬性,那么它的成員初始化器也是private\fileprivate

image.png

協(xié)議

image.png

image.png

image.png

image.png

Person里面協(xié)議的實現(xiàn)方法run()要么大于等于Person的級別,要么大于Runnable協(xié)議的級別

Person里面run()默認(rèn)是internal級別
擴展

image.png

Person里面run()默認(rèn)也是fileprivate-----如果有顯式設(shè)置擴展的訪問級別,擴展添加的成員自動接收擴展的訪問級別

如果沒有顯示設(shè)置擴展的訪問級別,擴展添加的成員的默認(rèn)訪問級別,跟直接在類型中定義的成員一樣

如果沒有顯示設(shè)置擴展的訪問級別,擴展添加的成員的默認(rèn)訪問級別,跟直接在類型中定義的成員一樣

可以單獨給擴展添加的成員設(shè)置訪問級別

可以單獨給擴展添加的成員設(shè)置訪問級別

不能給用于遵守協(xié)議的擴展顯式設(shè)置擴展的訪問級別

image.png
將方法賦值給var\let sss
image.png

image.png

image.png
內(nèi)存管理

image.png

let 無法保證p可以賦值為nil

ARC自動給弱引用設(shè)置nil時,不會觸發(fā)屬性觀察器

image.png

image.png


image.png

image.png

image.png

非逃逸閉包

image.png

image.png

image.png
