【问题标题】:Removing multiple objects from an NSMutableArray从 NSMutableArray 中删除多个对象
【发布时间】:2015-03-30 08:09:06
【问题描述】:

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

但是,由于它在完成删除然后调用[myArray removeAllObjects] 时是异步的,因此可能会收到一条我不想意外从数组中删除的新消息。

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

有没有一种很好的方法,或者是我唯一的选择来迭代数组并在它与副本中的内容匹配时删除?

【问题讨论】:

    标签: ios objective-c nsmutablearray


    【解决方案1】:

    NSMutableArray- (void)removeObjectsInArray:(NSArray *)otherArray方法

    【讨论】:

    • 谢谢你,正是我想要的。不知道为什么我没有在文档中注意到它
    【解决方案2】:

    你不能只使用 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];
            }
        }
    }
    

    【讨论】:

    • 可以使用这个是的,但只是在寻找一种更有效的方法。不过谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多