【问题标题】:Unique items from a NSMutableArray with NSDictionary items?带有 NSDictionary 项的 NSMutableArray 中的唯一项?
【发布时间】:2010-10-20 13:49:12
【问题描述】:

如果你有一个包含三个 NSDictionary 的 NSMutableArray,如下所示:

{ 
  name:steve, age:40;
  name:steve, age:23;
  name:paul, age:19
}

如何将其转换为只有两个字符串 { steve, paul } 的数组。换句话说,来自原始 NSMutableArray 的唯一名称?有没有办法使用块来做到这一点?

【问题讨论】:

    标签: ios cocoa-touch nsmutablearray nsdictionary objective-c-blocks


    【解决方案1】:

    与其他答案类似,您也可以这样做:

    NSSet * names = [NSSet setWithArray:[myArray valueForKey:@"name"]];
    

    或者

    NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"];
    

    【讨论】:

    • 比我更好的解决方案!我不认为将 valueForKey 用于数组!
    【解决方案2】:

    类似的东西:

    NSMutableSet* names = [[NSMutableSet alloc] init];
    
    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)) {
      [names addObject:[obj valueForKey:@"name"]];
    }];
    

    [names allObjects] 将返回一个唯一名称的 NSArray

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多