将一个NSMutableArray中的每个其他对象插入另一个NSMutableArray

时间:2014-12-19 02:45:55

标签: ios objective-c for-loop

我试图将一个NSMutableArray中的所有其他对象添加到另一个。 到目前为止,这是我的代码。

for (int i = 0; i < all.count; i ++) {
    [cat insertObject:all atIndex:0];
    [all removeObjectAtIndex:i];
}

它没有将名为all的mutableArray添加到名为cat的mutableArray中。 我想从一个数组中删除所有偶数对象,然后将它放到下一个数组中。

3 个答案:

答案 0 :(得分:2)

您正在将数组all插入cat。您应该使用all的元素,如下所示:

for (int i = 0; i < all.count; i += 2) {
    [cat addObject:[all objectAtIndex:i]];
}

或使用方括号语法访问all的数组元素,如下所示:

for (int i = 0; i < all.count; i += 2) {
    [cat addObject:all[i]];
}

答案 1 :(得分:1)

首先,您需要确保您的cat对象之前已使用空NSMutableArray初始化。

然后,将每个其他对象从一个对象传递到另一个对象的代码可能如下所示:

for (int i = 0; i < [all count]; i++) {
    id item = [all objectAtIndex:i];
    [cat addObject:item];
    [all removeObject:item];
}

这将从0迭代到all.count,将索引处的对象添加到cat数组,并将其从all数组中删除。您不需要使用i += 2进行迭代,因为removeObject的工作方式,它会移动剩余对象的索引以填充已删除对象的空间。

假设您已删除索引0,那么索引1将是新索引0,因此,为了转到原始索引2,您只需要转到新索引1。

答案 2 :(得分:0)

你可以像这样一次初始化cat数组 NSArray * cat = [NSArray arrayWithArray:all];