如何检查NSArray是否包含特定索引处的任何对象?

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

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

要完成任务,可以使用占位符对象(如[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]; }