检查NSMutableArray中的索引是否存在数据

时间:2010-02-26 08:39:34

标签: iphone objective-c cocoa-touch nsmutablearray

我有NSMutableArray,我想在其中插入数据,问题首先是我想检查我插入数据的索引是否存在。怎么做? 我尝试过类似的东西,但没有任何工作:

if ([[eventArray objectAtIndex:j] count] == 0)

if (![eventArray objectAtIndex:j])

3 个答案:

答案 0 :(得分:11)

if (j < [eventArray count])
{
     //Insert
}

答案 1 :(得分:3)

NSArrayNSMutableArray不是稀疏数组。因此,没有“存在于索引”的概念,只有“数组是否具有N个元素或更多”。

对于NSMutableArray,可变操作的总和是:

- (void)addObject:(id)anObject;
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
- (void)removeLastObject;
- (void)removeObjectAtIndex:(NSUInteger)index;
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

所有其他可变性方法都可以用上面的表达来表达 - 更具体地说就是你的问题 - 删除一个对象不会创建一个洞(也不能创建一个带有N个“洞”的数组,以便稍后填充)

答案 2 :(得分:0)

我在这个问题中给出了稀疏数组的简要实现:Sparse Array answer