0

我正在使用核心数据并成功获取结果。关于核心数据我有几个问题 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......... 一段时间后,我想删除我最先输入的记录(我是指最旧的数据)。比如删除最旧的两条记录。怎么做?

4

2 回答 2

4

您拥有的数组上的排序如下所示:

NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"SortKey" 升序:YES] autorelease];
NSArray *sortedList = [记录 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];

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

-担

于 2010-05-10T14:42:13.587 回答
3

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

于 2010-05-10T14:01:53.287 回答