核心数据排序不起作用

时间:2013-11-11 18:39:00

标签: sorting core-data

我正在尝试获取按company排序的核心数据模型我目前收到一条错误消息,指出我有一个未知的接收器device。我做错了什么?

编辑:以下是我收到的错误:

enter image description here

这是一些代码 -

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    // Fetch the devices from persistent data store
    NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Device"];


    self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];




    NSArray *sortDescriptors = @[
                                 [NSSortDescriptor sortDescriptorWithKey:@"company" ascending:YES]
                                 ];

    NSArray *sortedPeople = [self.devices sortedArrayUsingDescriptors:sortDescriptors];
    NSLog(@"%@", sortedPeople);






    [self.tableView reloadData];
}

1 个答案:

答案 0 :(得分:0)

从你的评论来看,似乎错误的是这一行:

NSArray *sortedPeople = [Device sortedArrayUsingDescriptors:sortDescriptors];

问题似乎是编译器不知道Device。换句话说,你说你要对某些东西进行排序,但是编译器无法弄清楚你想要排序的东西。

看起来Device是核心数据实体类型,但是根据您的问题,我无法确定您是否确实有一个名为Device的类。您在获取请求中使用了@"Device",但编译器不会尝试将字符串解析为符号。因此无法确定您需要修复的内容。根据您对要执行的操作的描述,可能想要将该行更改为

NSArray *sortedPeople = [self.devices sortedArrayUsingDescriptors:sortDescriptors];

你还提到过这样做会导致崩溃。但是在评论中经过多次来回之后,你仍然没有弄清楚崩溃发生时你可能会得到什么错误或其他消息。结果,谁知道?也许Device实体没有名为company的属性,因此排序失败。也许别的东西。如果您在重复请求后仍不愿意提供问题的重要细节,那么所有人都可以尝试猜测。