2012-05-21 75 views

回答

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

可你刚刚张贴在如何做到这一点的样本代码片段?这看起来像这样吗? for(int i = 0; i <[arr count]; i ++){if([arr objectAtIndex:i])NSlog(@“U have the object”)} else {[arr insertObject:anObject atIndex:i];} } –

+0

@PradeepReddyKypa done – justin

+0

非常感谢...请让你知道这是否有效。 –

相关问题