如何在Objective-C中调用方法?

时间:2009-02-26 19:05:55

标签: objective-c

我正在尝试构建一个iPhone应用程序。我创造了一个 像这样的方法:

- (void)score {
    // some code
}

我尝试用其他方法调用它:

- (void)score2 {
    @selector(score);
}

但它不起作用。那么,我该如何正确调用方法?

8 个答案:

答案 0 :(得分:87)

要在此实例中发送objective-c消息,您可以执行

[self score];

我建议你阅读Objective-C编程指南 Objective-C Programming Guide

答案 1 :(得分:28)

我建议你阅读The Objective-C Programming Language。关于消息传递的部分具体是你想要的,但整个过程将帮助你开始。在那之后,在你开始制作自己的应用程序之前,可以尝试做一些教程来感受它。

答案 2 :(得分:23)

我认为你要做的是:

-(void) score2 {
    [self score];
}

[object message]语法是在objective-c中调用方法的常规方法。我认为当需要在运行时确定要调用的方法时使用@selector语法,但我不知道是否足以为您提供更多相关信息。

答案 3 :(得分:16)

调用方法就像这样

[className methodName] 

但是如果你想在同一个类中调用该方法,你可以使用self

[self methodName] 

以上所有原因是因为您的方法没有采用任何参数

但是如果你的方法需要参数,你需要像这样做

[self methodName:Parameter]

答案 4 :(得分:5)

使用此:

[self performSelector:@selector(score) withObject:nil afterDelay:0.2];

答案 5 :(得分:1)

[self score]; instead of @selector(score)

答案 6 :(得分:1)

目标c的语法是

  

returnObj = [对象函数名称:参数];

其中object是具有您要调用的方法的对象。如果要从同一对象调用它,则将使用“ self”。本教程可能会帮助您学习Obj-C。

您的情况很简单

  

[自我得分];

如果您要传递参数,则类似于

- (void)score(int x) {
    // some code
}

并且我试图用其他方法调用它:

- (void)score2 {
    [self score:x];
}

答案 7 :(得分:1)

use this,
[self score]; 
instead of @selector(score).