类目,延展,协议的基本概念
生活随笔
收集整理的這篇文章主要介紹了
类目,延展,协议的基本概念
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Catgory(類目/分類) ? ? 1.分類是給原有類添加方法,它只能添加方法,不能添加屬性(成員變量) ? ? 2.分類中定義@property,只會生成setter/getter方法的聲明,沒有方法的實現以及私有變量。 ? ? 3.分類中的方法不能和本類的方法名相同,否則會有警告,而且調用的時候會優先調用分類的方法,即覆蓋本類的方法。 ? ? ? 4.分類的方法和實現分開,一對多,1個.h文件對應多個.m文件,典型的分散實現; 延展(Extension) ?1.延展為類創建私有方法,一個.m文件對應多個.h文件,分配權限時可以用(想用哪一個,就導入哪一個頭文件) 協議(protocol) 1.協議相當于其它語法里的接口(抽象類)它只有聲明沒有實現。它可以聲明一些必須實現的方法(默認的是必需實現required),也可以聲明一些不一定實現的方法(@ optional)協議是誰遵循誰實現。一個類可以遵循多個協議,一個協議也可以遵循其他協議(多繼承)。 2.判斷對象是否遵循協議confromsToprotocol,是否實現協議:respondsToSelector. protocol和繼承的區別:1.繼承之后默認就有實現,而property只有聲明沒有實現。2.相同類型的類可以用繼承,但是不同類型的類只能使用property。3.property可以用于存儲方法的聲明,可以將 多個類中共同的方法抽取出來,以后讓這些類遵守協議即可。 3.協議的的應用場景:類型的限制,可以將協議寫在數據類型的右邊,明確的標注如果想給該變量賦值,那么該對象必須遵守某個協議。 Persong<protocol> *w = [Person new];@property (strong nonatomic) Wife<protocol> *wife;類型限定寫在數據類型的右邊 1.當A對象想監聽B對象的一些變化是,可以使用代理設計模式2.當B對象發生一些事情,想通知A對象的時候,可以使用代理模式。當A對象無法處理某些事情時,想讓B對象幫忙處理。
轉載于:https://www.cnblogs.com/liumu/p/5236627.html
總結
以上是生活随笔為你收集整理的类目,延展,协议的基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016.2.29(异常)
- 下一篇: Working with Multipl