我正在尝试检查 NSArray ,如果在任何特定索引中包含任何对象,并且在检查后我想要如果该对象为空,则将该对象插入该特定索引。关于如何做到这一点的任何想法?
答案 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];
}