OC-點(diǎn)語法

1、使用點(diǎn)語法代替?zhèn)鹘y(tǒng)的get方法和set方法

    // 設(shè)置age的值
    stu.age = 10; // 等價(jià)于[stu setAge:10];
    
    // 取出age的值
    int age = stu.age; // 等價(jià)于int age = [stu age];
    1. 注意,把原來的[stu setAge:10]替換成了stu.age = 10。聽清楚了,這兩種寫法是完全等價(jià)的。即這里的stu.age并不是代表直接訪問stu對(duì)象的成員變量age,而是編譯器遇到stu.age = 10的時(shí)候會(huì)自動(dòng)將代碼展開成[stu setAge:10]

再說,如果是直接訪問成員變量的話,OC中應(yīng)該是這樣的語法:stu->age,而不是stu.age。

    1. 注意,把原來的int age = [stu age]替換成了int age = stu.age。這兩種寫法又是完全等價(jià)的,stu.age并不是直接訪問stu對(duì)象的成員變量age,而是編譯器遇到int age = stu.age的時(shí)候會(huì)自動(dòng)將代碼展開成int age = [stu age]
Paste_Image.png
  • OC點(diǎn)語法的本質(zhì)是方法調(diào)用,不是直接訪問成員變量。 至于這個(gè)點(diǎn)語法代表的是get方法還是set方法,那就取決于你是取值還是設(shè)值,取值就是get方法設(shè)值就是set方法。

2、點(diǎn)語法與self陷阱

不能用self.變量調(diào)用setter方法,這樣會(huì)造成循環(huán)調(diào)用。比如:

-(void)setAge:(int)newAge 
{self.age = newAge;
}

這樣相當(dāng)于

-(void)setAge:(int)newAge 
 {[self setAge:newAge];
}

很明顯,會(huì)造成循環(huán)調(diào)用setAge:方法,程序就這樣崩潰了

3、實(shí)例變量名加_, 比如_age

我們可以在聲明實(shí)例變量時(shí)加_,然后getter方法名不加,這樣就知道 stu.age確實(shí)是調(diào)用的age的getter方法,而不是訪問了實(shí)例變量 _age 了。

參考:http://www.cnblogs.com/mjios/archive/2013/04/08/3006577.htmlv

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

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

  • 20- 枚舉,枚舉原始值,枚舉相關(guān)值,switch提取枚舉關(guān)聯(lián)值 Swift枚舉: Swift中的枚舉比OC中的枚...
    iOS_恒仔閱讀 2,428評(píng)論 1 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評(píng)論 18 399
  • 大綱 0.OC數(shù)據(jù)類型 1.聲明一個(gè)類 2.實(shí)現(xiàn)一個(gè)類 3.創(chuàng)建一個(gè)對(duì)象 4.對(duì)象的注意點(diǎn) 5.對(duì)象方法 6.類方...
    天天想念閱讀 1,193評(píng)論 0 3
  • 前一個(gè)月,偶然間打開微博,看到大話西游2預(yù)計(jì)要在4.14號(hào)上映,那一刻我就決定要去看一看。 時(shí)間一天天的過去...
    阮瑾閱讀 754評(píng)論 0 3
  • 這一段時(shí)間過得忙碌而焦躁,心境難以平和,任何時(shí)候都?jí)阂种榫w。想要訴諸于人,又擔(dān)心是自己太過于矯情,生活不都是這...
    我想去遨游太空閱讀 195評(píng)論 0 1

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