【问题标题】:Fetch unique object based on attribute name from coredata根据 coredata 中的属性名称获取唯一对象
【发布时间】:2015-06-10 11:51:07
【问题描述】:

我在 coredata 中有实体employee_detail

name | rate | factor |
_______|______|________|
John   |  3.2 |    4   |
Betty  |  5.5 |    7   |
Betty  |  2.1 |    2   |
Betty  |  3.1 |    2   |
Edward |  4.5 |    5   |
John   |  2.3 |    4   |

我想要基于属性名称的唯一对象

O/P 应该是

name | rate | factor |
_______|______|________|
John   |  3.2 |    4   |
Betty  |  5.5 |    7   |
Edward |  4.5 |    5   |

【问题讨论】:

  • 您应该在查询中使用 DISTINCT 以获得此类结果
  • 我已经尝试过了。但仍然无法正常工作
  • 那么您必须手动管理,例如将新值添加到一个临时数组中并使用它
  • 我和你想的一样,但我不想手动去,因为有时有成千上万的重复记录,然后手动过滤它需要太多时间。
  • 从核心数据框架中获取数据

标签: ios objective-c iphone core-data


【解决方案1】:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"employee_detail"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"employee_detail" inManagedObjectContext:self.managedObjectContext];

fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"name"]];
fetchRequest.returnsDistinctResults = YES;

NSArray *dictionaries = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];
NSLog (@"names: %@",dictionaries);

【讨论】:

  • 它只是产生名称而已。我想要那个对象不仅仅是那个列。
  • 你找到答案了吗? @Yagnesh Dobariya
  • @YagneshDobariya 请在这里分享你的想法。
  • for 循环对象数组employee_detail。最初,根据示例数组将有 6 个employee_detail 类型的对象。管理一个临时数组。使用数组对象 6 对象编写 for 循环并检查临时数组中可用的对象。如果不在临时数组中添加对象,否则继续循环中的下一个对象。最终的临时数组将是输出。
猜你喜欢
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 2022-08-23
相关资源
最近更新 更多