【问题标题】:NSSortDescriptor is not working while fetching records from Core Data从核心数据获取记录时 NSSortDescriptor 不工作
【发布时间】:2010-10-13 12:57:25
【问题描述】:

我正在尝试在 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];

【问题讨论】:

  • 你的代码是正确的,我用的也是一样的……除了我的项目是 ARC 基础,所以我没有使用发布。

标签: core-data nssortdescriptor


【解决方案1】:

代码看起来不错,应该可以工作。因为它没有几个可能的原因。

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

【讨论】:

  • 好的。我得到它。我跟踪我的问题。
【解决方案2】:

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

fetchRequest.sortDescriptors.append("key")

但是如果我使用

fetchRequest.sortDescriptors = ["key"]

然后就可以正常使用了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    相关资源
    最近更新 更多