[ios]删除 NSArray 元素根据其值

发布时间: 2017/3/21 22:47:23
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 NSDictionary NSArray 值他们 NSDictionay 结构看起来像这样

ID = 22;
SERIESID = 33;
YEAREND = 2002;
YEARSTART = 1996;

我有一打左右的这些元素在我的数组中,我想知道如何删除了同一SERIESID从 NSArray 的元素或如果这是可能的已经作出 NSArray 后。

任何帮助将不胜感激。

解决方法 1:

基本上,遍历数组,跟踪的你所见,SERIESID,如果当前元素的 SERIESID 是一个重复,你将其标记为删除。

就像这样︰

NSMutableSet *seen = [NSMutableSet set];
NSMutableIndexSet *toDelete = [NSMutableIndexSet indexSet];
[yourArray enumerateObjectsUsingBlock:^(id dict, NSUInteger i, BOOL *stop) {
    if ([seen containsObject:dict[@"SERIESID"]]) {
        [toDelete addIndex:i];
    } else {
        [seen addObject:dict[@"SERIESID"]];
    }
}];
[yourArray removeObjectsAtIndexes:toDelete];

(作为边注,你得这样做删除,即使它不是最直观的方法。NSMutableArray 不为了改变的同时,你正在遍历它,所以你就会得到错误,如果你只是尝试使用 removeObjectAtIndex: 在循环中。That's 为什么我们建立我们想要删除,然后把它到数组末尾的对象的列表.)

官方微信
官方QQ群
31647020