我如何从 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
.
我想在 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
.