? ? ?self 是類的隱藏的參數(shù),指向當(dāng)前當(dāng)前調(diào)用方法的類收壕,另一個隱藏參數(shù)是 _cmd妓灌,代表當(dāng)前類方法的 selector。這里只關(guān)注這個 self蜜宪。
super 是個啥?super 并不是隱藏的參數(shù)虫埂,它只是一個“編譯器指示符”,它和 self 指向的是相同的消息接收者圃验,拿上面的代碼為例掉伏,不論是用 [self setName] 還是 [super setName],接收“setName”這個消息的接收者都是 PersonMe* me 這個對象损谦。不同的是岖免,super 告訴編譯器,當(dāng)調(diào)用 setName 的方法時照捡,要去調(diào)用父類的方法,而不是本類里的话侧。
當(dāng)使用 self 調(diào)用方法時栗精,會從當(dāng)前類的方法列表中開始找,如果沒有瞻鹏,就從父類中再找;而當(dāng)使用 super 時悲立,則從父類的方法列表中開始找。然后調(diào)用父類的這個方法新博。