Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C从另一个方法调用一个方法_Objective C - Fatal编程技术网

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]。如果不了解对象的实际定义,很难给出准确的答案。