1

我正在尝试检查一个NSArray是否在任何特定索引处包含任何对象,并且在检查它时,如果它为空,我想在该特定索引处插入该对象。关于如何做到这一点的任何想法?

4

1 回答 1

13

NSArray不包含nil值;objectAtIndex:永远不会回来nilnil添加到集合中是错误的。

要完成您的任务,您可以使用占位符对象,例如[NSNull null]查询数组的count. 当然,您将需要一个NSMutableArray来实际执行突变(例如替换或插入)。

在 OS X 上,您可以NSPointerArray用来表示包含nil元素的集合。


使用 NSNull 的示例:

const NSUInteger idx = ...;
NSMutableArray * array = ...;

if ([NSNull null] == [array objectAtIndex:idx]) {
  [array replaceObjectAtIndex:idx withObject:someObject];
}
于 2012-05-21T07:43:18.500 回答