iOS重用方法 - 这只能用条件完成吗?

时间:2012-10-11 20:49:05

标签: objective-c ios methods

我正在尝试在我的代码中重用一个方法,如果没有这样的条件,它就可以工作:

-(void) declareWebView

我可以在任何其他方法中稍后调用它:

[self declareWebView];

但如果我想为它添加一个条件(我认为这就是所谓的),就像这样:

-(void) declareWebView:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration

我如何在[self declareWebView]; ??

中使用它

如果我执行以下操作,则会出错:

[self declareWebView];[self declareWebView:]; //第二个添加了列。

任何事情都会很棒!

2 个答案:

答案 0 :(得分:2)

您必须为每个参数传递一个值:

[self declareWebView:UIInterfaceOrientationPortrait duration:1.0];

我建议做一些阅读 - The Objective-C Programming Language是一个很好的介绍性指南。

答案 1 :(得分:2)

如果你想创建一个实现与前一个相同代码的新方法,这是我的解决方案。

- (void) originalMethod{
    [self originalMethodWithNumber:nil];
}


- (void) originalMethodWithNumber:(NSNumber*) newNumberParam{
    NSNumber *numberValue = newNumberParam;
    if (numberValue == nil) numberValue = [NSNumber numberWithInt:1];//default value.
    // Perform anything here that you were doing. replacing out the new parameter
}

然后你仍然可以调用你的遗留“originalMethod”,现在有一个带参数的新方法。