Objective-C从另一个方法调用一个方法
说如果我有一个方法如下Objective-C从另一个方法调用一个方法,objective-c,Objective C,说如果我有一个方法如下 - (void)carpentorLoad { NSlog(@"HI... Hello"); } 现在,我需要从另一个方法调用这个方法,比如-(int)CallingMethod -(int) CallingMethod{ // Here, i need to call carpentorLoad Method return 0; } 我应该如何从CallingMethod调用carpentorLoad来执行此操作?这些方法在同一个类中吗
- (void)carpentorLoad {
NSlog(@"HI... Hello");
}
现在,我需要从另一个方法调用这个方法,比如-(int)CallingMethod
-(int) CallingMethod{
// Here, i need to call carpentorLoad Method
return 0;
}
我应该如何从
CallingMethod
调用carpentorLoad
来执行此操作?这些方法在同一个类中吗?如果是这样,您只需执行以下操作:
- (int) CallingMethod {
[self carpentorLoad];
return 0;
}
如果它们在不同的类中,则需要将对第二个类的引用传递到调用方法中,如:
- (int) CallingMethod: (Carpentor*)theCarpentor {
[theCarpentor carpentorLoad];
return 0;
}
假设它们是相同的对象,您可以调用
[self carpentorLoad]
如果
carpentorLoad
是另一个类的成员,则调用[carpentorLoad]
或[carpentorLoad]
,具体取决于它是静态方法还是实例方法。在Objective-C中,您不调用方法,而是发送消息。Obj-C运行时将您的消息与Receiver类或其祖先类中的一个方法相匹配,然后调用它找到的方法。您能给我举一个[carpentorLoad]
的例子吗,就像-(void)carpentorLoad
中的
一样,前导的破折号表示它是一个实例方法。它只是一个对象,无论哪个类有carpentorLoad
。和@bavariable,你完全正确,尽管给定了该方法的功能,OP可能实际上希望它是静态的。要么传递引用,要么调用返回该引用的方法/函数(可能是属性getter),要么将引用保留在实例变量中。所以我猜(Carpentor*)Carpentor
不是一个参数?它只是对木匠或类的引用?我说的对吗?不对,这是对Carpentor
类实例的引用。如果您的方法是静态的,那么您不需要传递实例,您只需使用[Carpentor或carpentorLoad]代码>。如果不了解对象的实际定义,很难给出准确的答案。