使用属性获取NSManagedObjects集

时间:2013-03-06 21:26:09

标签: core-data distinct nsfetchrequest

如何通过请求检查特定属性来获取一组唯一的托管对象。

e.g。许多人对象,我想检索所有唯一的名称,每个唯一名称的一个托管对象,按名称排序。

1 个答案:

答案 0 :(得分:3)

如何使用此类请求

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:managedObjectContext];
request.entity = entity;
request.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"name"]];
request.returnsDistinctResults = YES;
request.resultType = NSDictionaryResultType;

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptors]];

NSError *error = nil;
NSArray *distinctResults = [managedObjectContext executeFetchRequest:request error:&error];
// Use distinctResults

试着让我知道。

P.S。代码已启用ARC。如果您不使用它,请在必要时致电release