2018之iOS Category 和 Protocol 中的 Property 你們真的會了么?

一、property

合成存取器:

@property的格式:

1 @property (修飾列表) 變量類型 變量名;

Xcode4.4之前:

@property使編譯器自定生成set/get方法聲明。

@synthesize自動生成set/get方法的實(shí)現(xiàn)

@synthesize還會自動生成私有成員變量

Xcode4.4以后:

不用再寫@synthesize,編譯器通過@property就能給我們生成set/get方法的聲明和實(shí)現(xiàn),默認(rèn)生成成員變量:_propertyName

用@property生成的成員變量是私有的。

當(dāng)我們想改變默認(rèn)的成員變量名時(shí),@synthesize age = newName;‘

如果子類想訪問父類的成員變量,

1、通過set/get方法

2、顯示的聲明成員變量

進(jìn)入正題

首先聲明:

category和protocol可以添加方法

category 和 protocol中可以添加@property 關(guān)鍵字

二、關(guān)于protocol中的property

在protocol中添加property時(shí),其實(shí)就是聲明了 getter 和 setter 方法,在實(shí)現(xiàn)這個(gè)protocol協(xié)議的類中,我們要自己手動添加實(shí)例變量,并且需要實(shí)現(xiàn)setter/getter方法

image.png
image.png
image.png
image.png
image.png

三、category中的property

在category中添加property時(shí), 在@implentation添加 getter 和 setter方法時(shí), 由于category不能添加實(shí)例變量

1)使用臨時(shí)全局變量來替代成員變量

首先聲明:Person沒有name屬性

image.png
image.png
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如果讓我回憶這兩年來什么書讓我記憶猶新,感動不已,內(nèi)心久久不能忘卻。那這本《皮囊》一定在這名單之內(nèi)。當(dāng)年讀完余華的...
    林木青青閱讀 536評論 0 2
  • 讀《活著》時(shí),書中的文字過于沉重,卻又讓我不得不在余華的敘述中深陷。我喜歡活著這個(gè)名字,充溢著壓抑的活力和黯淡的溫...
    冬晛閱讀 319評論 0 0
  • 學(xué)習(xí)的閉環(huán) 學(xué)習(xí)會經(jīng)過輸入-輸出-結(jié)果的過程。這樣的學(xué)習(xí)會形成一個(gè)封閉的環(huán),成為學(xué)習(xí)的閉環(huán)。我們可以以此來檢驗(yàn)一...
    螢火之燈閱讀 142評論 0 0
  • 全教程完,學(xué)完記得交作業(yè)。如果本教程對您有所幫助,請推薦給你的朋友。
    搖星學(xué)院閱讀 1,300評論 0 0

友情鏈接更多精彩內(nèi)容