【问题标题】:How can i call the method from class Method [duplicate]我如何从类方法中调用方法[重复]
【发布时间】:2015-06-03 11:21:56
【问题描述】:

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

我试过了

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

【问题讨论】:

  • 也许使用单例,或者在类方法中创建一个实例?但是你应该提供更多关于你想要做什么的细节。

标签: ios iphone ios7 ios5


【解决方案1】:

实例方法只能通过相应类的实例调用。并且由于您使用self 在类方法中调用实例方法,因此self 将仅调用类方法,这就是您的实例方法不会被调用的原因。

要从类方法调用实例方法,您应该在类方法内有一个类的实例。有一种解决方法可以这样做-

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 那么兄弟它会为我工作
    猜你喜欢
    • 2016-03-31
    • 2018-01-22
    • 1970-01-01
    • 2020-08-09
    • 2020-06-10
    • 2019-01-19
    • 2012-02-10
    • 2010-10-18
    • 2020-04-26
    相关资源
    最近更新 更多