self總是指向調(diào)用該方法的對(duì)象羞酗。
self總是代表當(dāng)前類的對(duì)象摧找,當(dāng)self出現(xiàn)在某個(gè)方法體中時(shí)瘤缩,它代表的對(duì)象是不確定的喇完,但是類型是確定的,它所代表的對(duì)象就是當(dāng)前類的實(shí)例款咖;當(dāng)這個(gè)方法被調(diào)用時(shí)何暮,它所代表的對(duì)象就確定下來(lái)了:誰(shuí)在調(diào)用這個(gè)方法,self就代表誰(shuí)铐殃。
self.xxx 和_xxx的區(qū)別
_xxx是對(duì)屬性的直接引用海洼,不通過(guò)setter和getter方法。
self.xxx是通過(guò)訪問(wèn)方法的引用(包含setter和getter方法)富腊。
所有使用self.xxx是更好的選擇坏逢,因?yàn)檫@樣可以兼容懶加載,同時(shí)也避免了使用下滑線的時(shí)候忽略了self這個(gè)指針赘被,后者容易在BLock中造成循環(huán)引用是整。同時(shí),使用ios 屬性 _是獲取不到父類的屬性民假,因?yàn)樗皇菍?duì)局部變量的訪問(wèn)浮入。
因此,self方法實(shí)際上是用了get和set方法間接調(diào)用羊异,ios 屬性下劃線方法是直接對(duì)變量操作事秀。