self分成2种:
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。
所以
1.调用本类的+方法也可以用[self XXX] == [Actor XXX]
2.self也可以用在+方法同步块中
+ (HorseWindowManager *)ins {
@synchronized(self)
{
GET_FUN(ins, HorseWindowManager);
}
return ins;
}
// FROM