+是類(lèi)方法,-是對(duì)象方法.
+ 是可以通過(guò)類(lèi)名直接調(diào)用這個(gè)方法,
- 則要實(shí)例化一個(gè)對(duì)象,然后通過(guò)實(shí)例化的對(duì)象來(lái)調(diào)用該方法!
1. 實(shí)例方法中筛严,self【可以】調(diào)用實(shí)例方法(最常見(jiàn))
2. 實(shí)例方法中稚虎,self【不可以】調(diào)用類(lèi)方法,此時(shí)self不是Class舰褪〖崩瑁【編譯錯(cuò)誤】No visible @interface for 'xx' declares the selector ‘xx’
3. 類(lèi)方法中,self【可以】調(diào)用類(lèi)方法棋嘲,此時(shí)self是Class
4. 類(lèi)方法中酒唉,self【不可以】調(diào)用實(shí)例方法》幸疲【編譯錯(cuò)誤】 No known class method for selector ‘xxxxx’
self跟著函數(shù)的本質(zhì)不同痪伦,也會(huì)不同。所以雹锣,在類(lèi)方法中使用self网沾,就要特別注意了。
1蕊爵,實(shí)例方法里面的self辉哥,是對(duì)象的首地址。
2攒射,類(lèi)方法里面的self醋旦,是Class。類(lèi)方法不可以使用實(shí)例變量会放,但可以使用self饲齐,因?yàn)閟elf不是實(shí)例變量。此時(shí).self是Class
盡管在同一個(gè)類(lèi)里面的使用self咧最,但是self卻有著不同的解讀捂人。在類(lèi)方法里面的self,可以翻譯成class self矢沿;在實(shí)例方法里面的self滥搭,應(yīng)該被翻譯成為object self。在類(lèi)方法里面的self和實(shí)例方法里面的self有著本質(zhì)上的不同捣鲸,盡管他們的名字都叫self瑟匆。