我有一个来自Core Data的数组,我想使用我添加到数据库(orderNum
实体)的Scene
字段进行排序。
我发出以下请求来获取数据:
NSArray *scenes;
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Scenes" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
scenes = [context executeFetchRequest:fetchRequest error:&error];
return scenes;
如何按scenes
排序orderNum
中返回的数据?
答案 0 :(得分:1)
使用NSSortDescriptor
orderNum
作为key
并将该排序描述符应用于fetchRequest
。
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"orderNum" ascending:YES];
[fetchRequest setSortDescriptors:@[ sort ]];
答案 1 :(得分:0)
最好的方法是从数据库中检索数据排序。检查@Wain的答案。
但是,也可以将数据排序为NSArray
字典:
NSSortDescriptor *sceneDescriptor = [[NSSortDescriptor alloc] initWithKey:@"orderNum" ascending:YES];
NSArray * sortDescriptors = [NSArray arrayWithObject: sceneDescriptor];
NSArray *sortedArray = [scene sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"sortedArray = %@", sortedArray);