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

时间:2012-05-21 07:37:05

标签: ios objective-c iphone nsmutablearray

我正在尝试检查 NSArray ,如果在任何特定索引中包含任何对象,并且在检查后我想要如果该对象为空,则将该对象插入该特定索引。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:13)

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];
}