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