目标c功能和方法之间的区别

时间:2011-07-12 23:18:10

标签: objective-c

Objective -C中的函数和方法之间是否存在显着差异?

2 个答案:

答案 0 :(得分:71)

首先,我是Objective-C的初学者,但我可以说出我所知道的。

函数是与对象/类无关的代码块,只是从c继承而来,你可以这样调用它们:

// declaration
int fooFunction() {
    return 0;
}

// call
int a;
a = fooFunction();

虽然方法附加到类/实例(对象),但您必须告诉类/对象执行它们:

// declaration
- (int)fooMethod {
    return 0;
}

// call
int a;
a = [someObjectOfThisClass fooMethod];

答案 1 :(得分:5)

它更简单;方法只是一个C函数,前两个参数分别是方法调用的目标和被调用的选择器。

即。每个方法调用站点都可以重写为等效的C函数调用,但行为完全没有区别。


深入回答这里:Why [object doSomething] and not [*object doSomething]?从“回到语言的C预处理器根目录,你可以将每个方法调用转换为等效的C行”开始。