如何在iPhone中的NSMutableArray中替换对象索引

时间:2015-07-13 13:51:25

标签: ios objective-c iphone nsmutablearray

我有两个不同的数组,我想检查firstArray对象,并相应地在第二个数组中插入对象。如果我的firstArray包含特定对象,那么在该索引处,我在secondArray中尝试插入值。 目前,我正在插入如下值:

[secondArray replaceObjectAtIndex:0 withObject:transIdArray];
[secondArray replaceObjectAtIndex:1 withObject:fullCaseArray];
[secondArray replaceObjectAtIndex:2 withObject:caseTitleArray];
[secondArray replaceObjectAtIndex:3 withObject:filingDateArray];

我的问题是,如果在firstArray中transIdArray是2索引,那么我的这两个数组数据会不匹配。请建议我更好的方法来检查在数组中添加插入值。感谢。

1 个答案:

答案 0 :(得分:0)

[NSNull null]元素自然地打包在一起,而不是稀疏,就像C数组一样。为了实现您的目标,secondArray需要携带由您的应用程序在语义上被视为非对象的占位符。 NSNullnil的实例(不要与for (NSInteger i=0, i<SOME_KNOW_MAX_LENGTH; ++i) { [secondArray addObject:[NSNull null]]; } 混淆)是一种常见的选择。

您可以像这样初始化一个或两个数组:

NSNull

然后第二个数组中的id secondArrayElement = secondArray[index]; if ([secondArrayElement isMemberOfClass:[NSNull class]]) { // ... 实例意味着'此数组中此索引处没有任何内容对应于firstArray'。你可以检查这个条件对于给定的索引是否成立:

class

顺便一提 - 通常,当我发现自己需要协调并行数组时,通常意味着我有一些未完成的表示工作,我真正需要的是一个具有更周到的对象的单个数组,或者包含对象必须是更精心设计。