如何在ios中为方法定义默认参数值?

如何在ios中为方法定义默认参数值?

问题描述:

可能重复:
Objective-C Default Argument Value如何在ios中为方法定义默认参数值?

我无法找到一个方法来定义一个默认的参数传递给函数在IOS就像你通常会用C++做。在iOS中可以吗?如果没有,推荐使用什么工作?

+0

你可以混合C++和的OBJ-C代码 – Felix 2012-03-05 22:38:01

+0

我想你指的对象 - 方法而不是函数 – Felix 2012-03-05 22:38:57

+0

是 - 我的意思的OBJ C法对不起 – tiguero 2012-03-05 22:42:00

这在Objective-C中是不可能的。一种选择是做这样的事情来获得相同的功能:如果你正在寻找一个在完全忽略某个参数的能力,这是在Objective-C进行的典型方式

- (void)someMethodThatTakesAString:(NSString *)string 
{ 
    if (string == nil) string = @"Default Value"; 

    // Use string 
} 

就是有多种方法逐步更具体的参数设置:

- (void)doSomethingWithOptionA:(BOOL)optionA andOptionB:(int)optionB 
{ 
    // Do something using options to control exactly what's done 
} 

- (void)doSomethingWithOptionA:(BOOL)optionA 
{ 
    [self doSomethingWithOptionA:optionA andOptionB:42]; // Where 42 is the default for optionB 
} 

- (void)doSomething; 
{ 
    [self doSomethingWithOptionA:NO]; // NO is the default for optionA 
} 

然后如果你想只用默认参数DoSomething的,你可以叫-doSomething。如果你想设置optionA,但不关心optionB,你可以拨打-doSomethingWithOptionA:等。

最后,值得注意的是,你可以使用C++为iOS编写代码,而且你也可以混合使用Objective-C和C++使用Objective-C++。总而言之,请始终仔细考虑如何在您所使用的环境中做最好的事情。不要试图将C++习语和模式强制到Objective-C和Cocoa上。他们不同,他们的目的就是这样。找到一个在编写Objective-C代码时没有放弃C++约定的C++程序员通常很容易,而这通常不是一件好事。

看看答案在这里:Objective-C Default Argument Value

你应该做的就是定义需要的所有参数,然后写少走参数方便的方法,然后转身和调用较长方法使用默认的方法你想值