我有一个接受两个参数的自定义方法。我在几种不同的数据集上使用此方法,其中一些只需要传递一个数组,而另外两个需要传递。.我想知道是否可以在需要时传递一个null?

//方法

- (IBAction)startSortingTheArray:(NSArray *)arrayData:(NSArray *)arrayDataB
{
//..
}

最佳答案

是的,只要您的实现被编码为期望以这种方式,您就应该能够在需要时传递一个null。例如:

- (void)startSortingTheArray:(NSArray *)arrayData arrayB:(NSArray *)arrayDataB
{
    if (arrayData != nil) {
        // process arrayData
    }
    if (arrayDataB != nil) {
        // process arrayDataB
    }
}


为了使您的界面更加简洁,您还可以提供该方法的备用签名,并执行以下操作:

- (void)startSortingTheArray:(NSArray *)arrayData
{
    [self startSortingTheArray:arrayData arrayB:nil];
}


请注意,我更改了最初发布时的返回类型。您已将其声明为IBAction,应将sender作为其参数,而不是在传递它时的数组。我假设您是要将此功能应用于其他功能,而不是应用于接口构建器操作。

关于iphone - 如何使用null初始化方法参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7908189/

10-12 05:38