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

如何在Objective-C中调用方法?,objective-c,Objective C,我正在尝试构建一个iPhone应用程序。我创建了一个 方法如下: - (void)score { // some code } - (void)score2 { @selector(score); } - (void)score2 { [self score:x]; } 我试着用另一种方法调用它,比如: - (void)score { // some code } - (void)score2 { @selector(score); } - (v

我正在尝试构建一个iPhone应用程序。我创建了一个
方法如下:

- (void)score {
    // some code
}
- (void)score2 {
    @selector(score);
}
- (void)score2 {
    [self score:x];
}
我试着用另一种方法调用它,比如:

- (void)score {
    // some code
}
- (void)score2 {
    @selector(score);
}
- (void)score2 {
    [self score:x];
}

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

我想您要做的是:

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

[对象消息]
语法是在objective-c中调用方法的正常方式。我认为当需要在运行时确定要调用的方法时,可以使用
@selector
语法,但我不太清楚,无法提供更多信息。

我建议您阅读。关于消息传递的部分是您在这里特别想要的,但是整个过程将帮助您开始。在那之后,在你开始制作自己的应用程序之前,也许可以试着做一些教程来了解它。

在这种情况下,要发送objective-c消息,你可以这样做

[self score];
我建议您阅读Objective-C编程指南

使用以下方法:

[self score]; you don't need @sel for calling directly

调用方法是这样的

[className methodName] 
[self methodName:Parameter]
但是,如果要在同一类中调用该方法,可以使用self

[self methodName] 
所有这些都是因为您的方法没有采用任何参数

但是,如果您的方法采用参数,则需要这样做

[className methodName] 
[self methodName:Parameter]

语法是c语言的目标

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

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

在你的情况下,这很简单

[自我评分]

如果您想传递一个参数,那么它是这样的

- (void)score(int x) {
    // some code
}
我试着用另一种方法调用它,比如:

- (void)score {
    // some code
}
- (void)score2 {
    @selector(score);
}
- (void)score2 {
    [self score:x];
}

@选择器以Objective-C可以用来发送消息的形式为您提供方法的“名称”。它在某种程度上类似于函数指针。@fijiaaron:我没有说“RTFM”。我说这个问题是一个非常初级的问题,如果他不得不问这个问题,他会发现自己在Objective-C方面的经验非常令人沮丧,阅读这本介绍性指南是沿着正确道路前进的一个良好开端。你知道,教一个人钓鱼。就我个人而言,我发现这种答案比未知质量的代码呕吐物更有帮助。我一直在想,是否可以给方法增加延迟。从未有过这样做的要求,但总是想知道是否可以做到,以及如何做到不错。为了一件事而来,最后发现了一些有用的东西。这看起来很清楚,并且包含了一个参数,这很有用,即使对于简单的“分数”示例来说不是这样。