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

Ios 将一个NSMutableArray中的其他每个对象插入另一个NSMutableArray,ios,objective-c,for-loop,Ios,Objective C,For Loop,我正在尝试将其他对象从一个NSMutableArray添加到另一个NSMutableArray。 这是到目前为止我的代码 for (int i = 0; i < all.count; i ++) { [cat insertObject:all atIndex:0]; [all removeObjectAtIndex:i]; } 它没有添加任何内容,从名为all的mutableArray到名为cat的mutableArray。 我想从一个数组中删除所有偶数对象,并将其放到下

我正在尝试将其他对象从一个NSMutableArray添加到另一个NSMutableArray。 这是到目前为止我的代码

for (int i = 0; i < all.count; i ++) {
    [cat insertObject:all atIndex:0];
    [all removeObjectAtIndex:i];
}
它没有添加任何内容,从名为all的mutableArray到名为cat的mutableArray。
我想从一个数组中删除所有偶数对象,并将其放到下一个数组中。

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

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

首先,您需要确保您的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。

您可以像这样一次性初始化cat数组
NSArray*cat=[NSArray ARRAY WITHARRAY:all]

你看到我的东西了吗?你可能需要使用它。更简洁、现代的符号:[cat addObject:all[i]]@Mike你没有忘记用Sorry,my bad替换你的>。只是改变了它,它就成功了!!现在,如何从所有对象中删除该对象。注意:这是一个NSArray。@Mike因为NSArray是不可变的,所以不能从中删除对象。您可以使用要保留的对象创建一个临时可变数组,并在完成后将其分配回所有对象。我更新了我的问题。另外,RemoveObjectAtIndex我认为它不适用于NSMutableArray,因为它给了我一个错误。在我看来,它在没有“/2”的情况下工作得很好,但感谢您指出I++,这是一个真正的救命稻草。