从Core Data获取记录时,NSSortDescriptor无法正常工作

时间:2010-10-13 12:57:25

标签: core-data nssortdescriptor

我正在尝试在Core Data中使用NSSortDescriptor来获取我的记录。模态对象数组不受排序描述符的影响。它以相同的顺序给出记录。这是我的代码:

NSManagedObjectContext *moc=[self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription 
                               entityForName:@"To_Do" inManagedObjectContext:moc];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"repeatDate" ascending:NO];

NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[sortDescriptor release];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setEntity:entity];
NSError * error = nil;

NSArray *arrEntity = nil;
arrEntity=[moc executeFetchRequest:fetchRequest error:&error];

2 个答案:

答案 0 :(得分:4)

代码看起来很好,应该可行。因为它没有几个可能的原因。

  1. 未排序的提取顺序可能与排序顺序相同。如果您按顺序创建对象并使用创建日期之类的密钥等,则有时会发生这种情况。
  2. 您的密钥可能都具有相同的值。如果您有默认值,则可能会发生这种情况。
  3. 您的密钥错误或其名称拼写错误。您应该收到投诉,但如果找不到密钥则不会崩溃。

答案 1 :(得分:0)

如果我这样做,我也会遇到同样的问题

fetchRequest.sortDescriptors.append("key")

但是如果我使用

fetchRequest.sortDescriptors = ["key"]

然后正常工作