从NSMutableArray中删除多个对象

时间:2015-03-30 08:09:07

标签: ios objective-c nsmutablearray

是否可以通过传递一个列表或要删除的对象数组从NSMutableArray中删除多个对象?现在我有一个deleteAll方法,删除来自Parse服务器的所有消息,然后从本地数组中删除消息。

但是,当它完成删除然后调用[myArray removeAllObjects]时它是异步的,可能会收到一条我不想从阵列中意外删除的新消息。

所以我想在执行删除操作之前复制消息数组,并且当异步调用完成时,从消息数组中删除与副本相同的所有元素。

有没有一种很好的方法可以做到这一点,或者我是唯一的选择来迭代数组并删除它是否与副本中的内容相匹配?

2 个答案:

答案 0 :(得分:4)

查看- (void)removeObjectsInArray:(NSArray *)otherArray

NSMutableArray方法

答案 1 :(得分:0)

你不能只使用for循环并删除你想要的对象吗?像这样:

NSMutableArray *yourArray = [..... etc....];
NSMutableArray *editArray = [[NSMutableArray alloc] init];
editArray = [yourArray copy];

NSMutableArray *itemsToDelete = [....items....];

for (int loop = 0; loop < [yourArray count]; loop++) {

    for (int loop_2 = 0; loop_2 < [editArray count]; loop_2++) {

        if (editArray[loop_2] == yourArray[loop]) {
            [editArray removeObjectAtIndex:loop_2];
        }
    }
}