Oc 类方法为什么不能用self 求解?
当然可以用self了。如下代码:
@implementation UIView (Utils)
+ (void) someStaicMethod
{
[self animateWithDuration:0.1 animations:nil];
}
@end
类方法中self
指类本身。上述例子中self
即UIView
self指代的是对象本身,对象是类的实例,类 ≠ 对象
一个类可以生出很多对象,如果在类方法中使用self,是想指代哪一个对象呢?
折叠我吧,oc里确实可以用self指代class本身,并且是多态的。
+ (id)new
{
return [[self alloc] init];
}
NSArray * arr1 = [NSArray new]; // self 指代 NSArray
NSMutableArray * arr2 = [NSMutableArray new]; // self指代 NSMutableArray