如何检查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]; }