1.協議是用來幹嗎的?ide
協議是用能夠用來給枚舉,結構體,類添加屬性,方法,下標添加聲明的東西ui
2.協議的使用與注意點cdn
協議既然是(屬性,方法,下標)一種聲明,就不會有(屬性,方法,下標)實現。對象
2.1 定義一個含有屬性,方法,下標的協議blog
由於協議只會定義申明,暫時沒有實現,因此屬性和下標都是沒有默認值的,要改變屬性的值。天然只能用var。而實現協議的對象要給屬性賦值取值,天然須要經過set,get來定義。若是隻須要取值使用get便可。get
2.2 協議的實現以及使用(協議是一種類型)it
當咱們使用協議的方式初始化的時候,協議裏面定義了set,咱們才能給屬性賦值。當咱們以對象類型去建立的話,由於對象自己默認就有set和get,因此咱們即便去掉了協議的set,咱們也能給屬性賦值 io
2.3 static和class的使用class
咱們能夠給協議裏面的方法,屬性,下標添加關鍵字,這樣咱們能夠經過對象直接訪問屬性 require
2.4 在協議中定義初始化器init
咱們能夠在協議中定義初始化器。而後在對應的枚舉,結構體,類中使用它。值得注意的是在類中使用初始化器須要使用required來修飾,結構體和枚舉不須要
2.5 mutating的使用
當枚舉或者結構體想要在協議定義的方法裏面修改捕捉到的外部變量的值時,咱們須要給協議定義的方法添加mutating,記住只有枚舉和結構體才須要,類不須要
2.6 當父類和協議有相同的初始化器
咱們須要在使用初始化器的時候在初始化器上添加override和required。