我怎样才能从类Method中调用该方法

时间:2015-06-03 11:21:56

标签: ios iphone ios7 ios5

我想在类方法中调用方法[self methodName];,但它不会在同一个类中调用。

我试过

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

2 个答案:

答案 0 :(得分:2)

实例方法只能通过相应类的实例调用。因为当您使用self在类方法中调用实例方法时,此处self将仅调用类方法,这就是为什么不调用实例方法的原因。

要从类方法调用实例方法,您应该在类方法中有一个类的实例。有一种解决方法 -

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

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

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

答案 1 :(得分:1)

如果要调用实例方法,则需要一个实例来调用该方法。

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

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

-(void)methodName {
}