我使用核心数据并根据ID数组获取结果。这个id数组是我需要获取的序列。但取得的结果不是那个顺序。我该怎么做才能获取与id数组的顺序完全匹配的对象?
// get manageObjectContext
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SomeName"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"%K IN %@", @"anId", arr];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
fetchRequest = nil;
答案 0 :(得分:0)
据我所知,Core Data不支持此功能。这使您可以选择一次检索一个对象,或在检索它们之后进行排序。我的直觉是,对于相对较小的集合,检索它们后在内存中进行排序的速度更快,但这可能取决于许多变量,例如基础数据库的体系结构,如何对事物建立索引等。
答案 1 :(得分:-1)
使用
fetchRequest.sortDescriptors = NSSortDescriptor(key: "anId", ascending: true or false)