protocol 和category如何使用property?

protocol

在protocol中使用property,只會生成setter和getter方法的聲明。

當使用的時候

  • 使用systhsize name; 自動生成getter、setter
  • 或者手動自己添加getter、setter和實例變量

category

和protocol不同的是,在category的時候已經不允許在類中在加入實例變量。(編譯的時候,對象的內容佈局已經確定)需要藉助函數objc_setAssociatedObject 和 objc_getAssociatedObject,在運行時添加屬性。

在runtime中,所有關聯對象都由AssociationsManager管理。AssociationsManager裏面是由一個靜態AssociationHashMap來存儲所有關聯對象。而map的key是這個對象的指針地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章