在類(實例)方法中使用self調(diào)用方法
在實例方法中
self【可以】調(diào)用實例方法(最常見)
self【不可以】調(diào)用類方法,此時self不是Class?!揪幾g錯誤】No visible @interface for 'xx' declares the selector ‘xx’
在類方法中
self【可以】調(diào)用類方法,此時self是Class
self【不可以】調(diào)用實例方法?!揪幾g錯誤】 No known class method for selector ‘xxxxx’
self跟著函數(shù)的本質(zhì)不同,也會不同。所以,在類方法中使用self,就要特別注意了。
【總結(jié)】:
1,實例方法里面的self,是對象的首地址。
2,類方法里面的self,是Class。類方法不可以使用實例變量,但可以使用self,因為self不是實例變量。此時.self是Class
盡管在同一個類里面的使用self,但是self卻有著不同的解讀。在類方法里面的self,可以翻譯成class self;在實例方法里面的self,應(yīng)該被翻譯成為object self。在類方法里面的self和實例方法里面的self有著本質(zhì)上的不同,盡管他們的名字都叫self。