iOS + -
2017-05-30 本文已影响9人
BEYOND黄
+是类方法,-是对象方法.
+ 是可以通过类名直接调用这个方法,
- 则要实例化一个对象,然后通过实例化的对象来调用该方法!
1. 实例方法中,self【可以】调用实例方法(最常见)
2. 实例方法中,self【不可以】调用类方法,此时self不是Class。【编译错误】No visible @interface for 'xx' declares the selector ‘xx’
3. 类方法中,self【可以】调用类方法,此时self是Class
4. 类方法中,self【不可以】调用实例方法。【编译错误】 No known class method for selector ‘xxxxx’
self跟着函数的本质不同,也会不同。所以,在类方法中使用self,就要特别注意了。
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class。类方法不可以使用实例变量,但可以使用self,因为self不是实例变量。此时.self是Class
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。