从该类中调用类方法

pro*_*ock 25 objective-c class-method

有没有办法从同一个类中的另一个方法调用类方法?

例如:

+classMethodA{
}

+classMethodB{
    //I would like to call classMethodA here
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eid 60

在类方法中,self指的是被消息的类.所以从另一个类方法(比如classMethodB)中,使用:

+ (void)classMethodB
{
    // ...
    [self classMethodA];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在实例方法(比如instanceMethodB)中,使用:

- (void)instanceMethodB
{
    // ...
    [[self class] classMethodA];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,两者都不会假设您正在发送哪个类.实际的类可以是子类.

  • 不."自我"的含义取决于你的消息.如果你给一个班级留言,`self`就是班级.如果你给实例发消息,`self`就是实例.我在http://qualitycoding.org/factory-method/中解释了消息传递自我对类方法的重要性 (8认同)

Tom*_*rys 8

应该如此简单:

[MyClass classMethodA];
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请确保在类的界面中定义了方法签名.(通常在.h文件中)