iOS + -

+是类方法,-是对象方法.

+ 是可以通过类名直接调用这个方法,

- 则要实例化一个对象,然后通过实例化的对象来调用该方法!

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。

你可能感兴趣的:(iOS + -)