具有序列顺序的Coredata获取请求

时间:2016-01-07 07:14:30

标签: ios objective-c core-data

我使用核心数据并根据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;

2 个答案:

答案 0 :(得分:0)

据我所知,Core Data不支持此功能。这使您可以选择一次检索一个对象,或在检索它们之后进行排序。我的直觉是,对于相对较小的集合,检索它们后在内存中进行排序的速度更快,但这可能取决于许多变量,例如基础数据库的体系结构,如何对事物建立索引等。

答案 1 :(得分:-1)

使用

fetchRequest.sortDescriptors = NSSortDescriptor(key: "anId", ascending: true or false)