我想在类方法中调用方法[self methodName];
,但它不会在同一个类中调用。
我试过
+(void)myMehod
{
[self methoName];
}
答案 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 {
}