我如何从 class 方法中调用方法

How can i call the method from class Method

我想在 class 方法中调用方法 [self methodName]; 但它不会在相同的 class 中调用。

我试过了

+(void)myMehod 
{
   [self methoName];
}

如果你想调用实例方法,你需要一个实例来调用方法。

试试这个解决方法,但它不遵循面向对象的概念

+(void)myMehod {
    [[[self alloc] init] methodName];
}

-(void)methodName {
}

实例方法只会通过各自class的实例调用。因为当您使用 self 在 class 方法中调用实例方法时,此处 self 将仅调用 class 方法,这就是您的实例方法不会被调用的原因。

要从 class 方法调用实例方法,您应该在 class 方法中有一个 class 的实例。有一个解决方法可以做到这一点-

+(id)myMethod
{
    [[[self alloc] init] methodName]; //Raises compiler warning. 
}

-(void) methodName 
{
     NSLog(@"I am called");
}

但上述解决方法将导致 泄漏 ,因为创建的实例既不是 released 也不是 autorelease type.