40

Personプロパティを持つエンティティがありますpersonId(personId は一意です)

最大の personId を持つ Person を取得するにはどうすればよいですか?

(物件の価値ではなく、本人そのものを取得したい)

4

7 に答える 7

68

fetchLimittoを設定して降順1で並べ替えます。personId例えば:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Person"];

fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"personId" ascending:NO]];

NSError *error = nil;

id person = [managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;
于 2012-05-01T13:11:24.980 に答える
23

クエリを指定するには、NSPredicateでNSFe​​tchRequestを使用する必要があります...

AppleのPredicateProgammingGuideから引用:

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person"
    inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

request.predicate = [NSPredicate predicateWithFormat:@"personId==max(personId)"];
request.sortDescriptors = [NSArray array];

NSError *error = nil;
NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
于 2012-05-01T13:20:02.217 に答える