Ios 函数(非方法)的可选值

Ios 函数(非方法)的可选值,ios,objective-c,Ios,Objective C,我知道有一种方法可以通过objective c中的方法获得可选值或默认值,但有没有一种方法可以通过函数实现这一点 尝试与使用方法相同的方法会导致类型冲突错误 即 在Cocoa中没有所谓的函数 如果你把缺省参数看作C++,那么COCOA中没有任何东西。 但是,可以有多个方法共享相同的名称和不同的参数,如下所示: init //no arguments initWithName: //one argument initWithName:age: //two arguments 您可以接近这

我知道有一种方法可以通过objective c中的方法获得可选值或默认值,但有没有一种方法可以通过函数实现这一点

尝试与使用方法相同的方法会导致类型冲突错误


在Cocoa中没有所谓的函数

如果你把缺省参数看作C++,那么COCOA中没有任何东西。

但是,可以有多个方法共享相同的名称和不同的参数,如下所示:

 init //no arguments
 initWithName: //one argument
 initWithName:age:  //two arguments
您可以接近这个C++默认参数方法:

int sum(int a, int b=0, int c=0){
    return a+b+c;
}
在objective-c中,但不要这样做:

-(NSInteger)sumA:(NSInteger)a与b:(NSInteger)b与c:(NSInteger)c{

并将其命名为:
[self-sumA:10与b:5与c:nil];


问题不特定于xcode、iPhone或iPad。(retag)您可以像我在OP中所做的那样在类中定义函数。然后用
myfunc()调用它
在您的代码中,只要包含.h。我明白了,因此仍然必须传递一个值。因此它不能是可选的。ObjC和Cocoa中肯定有函数。
int main(int argc,char*argv[])
是每个Cocoa程序的入口点,就像C程序一样。为整数参数传递
nil
是不正确的——这是一个对象类型的变量。它可以工作,因为它的值与整数0相同,但不应该用作POD类型的某种哨兵值。@JoshCaswell:我刚刚给出了一个例子,所以我们可以达到接近的程度,但是没有这样的优势,我不是有意使用:(
int sum(int a, int b=0, int c=0){
    return a+b+c;
}
    if(c==NIL) c=0;
    if(b==NIL) b=0;
    return a+b+c;
}