iphone核心数据获取请求排序

时间:2010-05-10 13:55:39

标签: iphone core-data nsfetchrequest

我正在使用核心数据并成功获取结果。关于核心数据我几乎没有问题 1.当我添加记录时,它会在实体的结尾或开头添加。 2.我正在使用以下代码来获取数据。正在使用所有记录填充数组。但它们与我将记录输入实体的顺序不同。为什么?在什么基础上使用默认排序?

    NSFetchRequest* allLatest = [[NSFetchRequest alloc] init];
[allLatest setEntity:[NSEntityDescription entityForName:@"Latest" inManagedObjectContext:[self managedObjectContext]]];

NSError* error = nil;
NSArray* records = [managedObjectContext executeFetchRequest:allLatest error:&error];
[allLatest release];

3。我输入记录的方式,1,2,3,4 .........一段时间后,我想删除我先输入的记录(我的意思是最旧的数据)。像删除最旧的两个记录。怎么做?

2 个答案:

答案 0 :(得分:4)

您对阵列的排序如下:

NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"SortKey" ascending:YES] autorelease];
NSArray *sortedList = [records sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];

initWithKey:参数是您要排序的属性。如果您有多个要排序的键,可以将它们作为列表添加到sortedArrayUsingDescriptors:参数中。列表将按第一个描述符排序,然后按下一个描述符排序。

-Dan

答案 1 :(得分:3)

无法以任何方式保证订购。如果您关心订单,则需要在实体中包含一个属性(例如,将其命名为“sequenceNumber”)并在NSFetchRequest的排序描述符中使用该属性。