对数组进行排序

时间:2014-03-28 14:54:26

标签: ios objective-c sorting core-data

我有一个来自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中返回的数据?

2 个答案:

答案 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);