关于`self`的关键字

时间:2011-05-27 00:45:09

标签: objective-c

+ (void)Foo;
- (void)Foo;

在方法- (void)Foo中,关键字self表示该类的实例。 但在方法+ (void)Foo中,关键字self的含义是什么?这是Class吗?

2 个答案:

答案 0 :(得分:7)

self是每个方法的两个隐式参数之一。它是一个指向对象的指针,最初它是接收消息的任何对象来调用正在执行的方法。当有问题的方法是实例方法时,self将是定义方法的类的实例,或者是其子类之一。对于类方法,self将是类对象。

答案 1 :(得分:5)

是。以下工作正常:

+(id)myObjectWithInt:(NSInteger)anInt {
    return [[[self alloc] initWithInt:anInt] autorelease];
}