0

チェックする特定の属性を要求することにより、一意の管理対象オブジェクトのセットをフェッチするにはどうすればよいですか。

たとえば、多数の人のオブジェクトと私はすべての一意の名前を取得したいと思います。名前でソートされた、一意の名前ごとに1つの管理対象オブジェクトです。

4

1 に答える 1

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

試してみて、私に知らせてください。

PS コードは ARC 対応です。使用していない場合はrelease、必要に応じて電話してください。

于 2013-03-06T21:35:46.017 に答える