NSArray arrayWithObjects:如果 nil 是为了标记数组结束,我可以做吗..无,无]



如果nil旨在标记参数的结尾,那么我可以使用:

[NSArray arrayWithObjects:obj1, obj2, nil, nil, nil];

由于第一个 nil 标记数组结束,之后的两个 nil 将被忽略?

我得到了两个相反的答案,并会尝试一下。

更新:

我需要这样做

的原因是我需要创建一个 UIAlertView,它可能有按钮:"确定",或者"呼叫"和"取消",所以"确定"或"取消"是取消按钮,而"呼叫"是一种情况下是其他按钮,在其他情况下,我不需要任何其他按钮,这就是我需要这样做的原因。

当你在创建NSArray时放置nil时,nil添加该对象。之后的nil和对象将被忽略。只是为了完成,您也不能将nil添加到NSMutableArray(例如使用addObject:方法),这样做会引发异常。

您可以在创建 NSArray 时放置[NSNull null];

在末尾添加 nil 并不是为了将 nils 添加到数组中,它只是 C 如何处理的工件......变量参数列表。 它与NSArray或NSMutableArray无关,您不能在其中存储nil。

因此,编译器是否接受,nil,nil,nil实际上无关紧要。 编译器将在第一个 nil 时停止读取。 首先编写代码表明了对obj C集合和var arg方法的误解。

为什么不使用新的文字语法,只是说

NSArray *myArray = @[@"bla", @"bla", @"bla"];

无论哪种方式,额外的 nils 在您提供的语法中都不重要。

是的,确切地说,这是可以做到的。第一个之后的 nils 将被忽略。

为什么要故意在数组中添加 nil?我想你最好停下来,三思而后行,为什么你必须这样做。如果您不确定阵列的大小,可以随时使用 NSMutableArray。

相关内容

  • 没有找到相关文章

最新更新