在OC中,使用@property關鍵字,聲明對象的屬性。包含了受保護字段的聲明、字段的getter & setter 方法聲明 以及 對應方法的實現。
在對這個屬性進行讀寫的操作過程中,OC和其他語言不太一樣。它有兩種寫法。
[instance setProperty : value] & instance.property = value;

Paste_Image.png
我個人堅決支持后一種寫法,也就是.語法。
并附如下原因:
1、OC是面向對象語言。面向對象語言對于面向過程語言來說,有一個很大的不同之處:數據和行為自治。(某些特性的行為是為特性的數據服務的)
2、面向對象語言中,大多數對象的不存不單純的只是數據(如果是,那就和C語言的結構體沒有區(qū)別了),更多的是數據 + 行為 來組合成一個完整意義的對象。
3、如果使用setProperty的方式,一大片代碼都是函數的調用,函數的調用。初看之下我都分不清哪些是屬性,是存放數據的。哪些是行為,是處理數據的。
4、個人喜好和習慣。畢竟從.net 轉過來的,屬性我更傾向于使用.語法。
其中最重要的是第3點,使用點語法,我能一眼就瞟出哪些是數據,哪些是行為??梢愿涌旖莸谋孀R這個對象的結構,也可以使代碼更具備可讀性。