首页 > Oc 类方法为什么不能用self 求解?

Oc 类方法为什么不能用self 求解?

Oc 类方法为什么不能用self 求解?


当然可以用self了。如下代码:

@implementation UIView (Utils)
+ (void) someStaicMethod
{
    [self animateWithDuration:0.1 animations:nil];
}
@end

类方法中self指类本身。上述例子中selfUIView


self指代的是对象本身,对象是类的实例,类 ≠ 对象

一个类可以生出很多对象,如果在类方法中使用self,是想指代哪一个对象呢?


折叠我吧,oc里确实可以用self指代class本身,并且是多态的。

+ (id)new
{
  return [[self alloc] init];
}

NSArray * arr1 = [NSArray new];  // self 指代 NSArray
NSMutableArray * arr2 = [NSMutableArray new]; // self指代 NSMutableArray
【热门文章】
【热门文章】