Core data 从核心数据中提取记录时NSSortDescriptor不工作

Core data 从核心数据中提取记录时NSSortDescriptor不工作,core-data,nssortdescriptor,Core Data,Nssortdescriptor,我正在尝试在核心数据中使用NSSortDescriptor来获取我的记录。模态对象数组不受排序描述符的影响。它以相同的顺序给出记录。这是我的代码: NSManagedObjectContext *moc=[self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription

我正在尝试在核心数据中使用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];

代码看起来不错,应该可以正常工作。因为它不存在一些可能的原因

  • 未排序的提取顺序可能与已排序的顺序相同。如果连续创建对象并使用键(如创建日期等),有时会发生这种情况
  • 您的键可能都具有相同的值。如果有默认值,则可能发生这种情况
  • 您的密钥错误或名称拼写错误。你应该得到投诉,但如果找不到钥匙,它不会崩溃
    如果我这样做的话,我也会有同样的问题

    fetchRequest.sortDescriptors.append("key")
    
    但是如果我使用

    fetchRequest.sortDescriptors = ["key"]
    

    然后它工作正常

    正常。我明白了。我跟踪我的问题。你的代码是正确的,我使用了相同的…除了我的项目是ARC base,所以我没有使用release。