【问题标题】:removing duplicates from NSMutableArray with NSSet使用 NSSet 从 NSMutableArray 中删除重复项
【发布时间】:2013-04-17 08:43:57
【问题描述】:

我正在尝试设置一个 NSSet 以从 NSDictionary 对象的 NSMutableArray 中删除所有重复项,但是我不确定如何将创建 NSSet 所需的值之一设置为 NSMutableArray 的 NSDictionary 对象中的元素...希望这是有道理的。

这就是 NSDictionary 的样子

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

这是我目前的代码

NSSet *uniqueElements = [NSSet setWithArray:yearArray];

// iterate over the unique items
for(id element in uniqueElements) {
    // create new NSArray of unique entries
}

我想知道如何根据 yearArray 中每个 NSDictionary 的 SERIESID 值创建一个唯一的 yearArray。

任何帮助将不胜感激。

【问题讨论】:

  • 请重新表述您的问题。 yearArray 是您尝试从中删除重复项的可变数组吗?
  • 更新了我的问题 我想知道如何根据 yearArray 中每个 NSDictionary 的 SERIESID 值创建一个唯一的 yearArray。 我希望这更有意义。
  • 并非如此。你想以 SERIESID 的数组结束而不是别的吗?

标签: ios objective-c nsmutablearray nsset


【解决方案1】:

我已经更新了 Suhas 给出的解决方案:

NSMutableArray *resultantArray = [NSMutableArray array];
NSMutableArray * yearArrayCopy = [yearArray copy];
for(NSDictionary *dict in yearArrayCopy)
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SERIESID == %@",
                                      [dict valueForKey:@"SERIESID"]];

    NSArray *filteredArray = [yearArray filteredArrayUsingPredicate:predicate];

    if([filteredArray count])
    {
        [resultantArray addObject:dict];
        [yearArray removeObjectsInArray:filteredArray];
    }  
}

“resultantArray”将仅包含唯一元素。

【讨论】:

    【解决方案2】:

    你可以试试这个

    NSMutableArray *resultantArray = [NSMutableArray array];
    
    for(NSDictionary *dict in yearArray)
    {
      NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SERIESID == %@",
                                              [dict valueForKey:@"SERIESID"]];
    
      NSArray filteredArray = [resultantArray filteredArrayUsingPredicate:predicate];
    
      if(![filteredArray count])
      {
        [resultantArray addObject:dict];
      }  
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多