0

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

编辑:这是我收到的错误:

在此处输入图像描述

这是一些代码-

- (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];
}
4

1 回答 1

0

从您的评论来看,似乎有问题的是这一行:

NSArray *sortedPeople = [Device sortedArrayUsingDescriptors:sortDescriptors];

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

它看起来像是Device一个核心数据实体类型,但从你的问题来看,我不确定你是否真的有一个名为Device. 您@"Device"在 fetch 请求中使用了,但编译器不会尝试将字符串解析为符号。所以不可能确定你需要修复什么。根据您对您正在尝试做的事情的描述,您可能希望将该行更改为

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

您还提到这样做时会发生崩溃。但是在评论中反复多次之后,您仍然没有给出任何线索,当崩溃发生时您可能会收到什么错误或其他消息。结果,谁知道呢?也许Device实体没有名为 的属性company,因此排序失败。也许是别的东西。如果即使在重复请求之后您仍不愿意提供问题的关键细节,那么任何人都可以做的就是尝试猜测。

于 2013-11-12T04:56:36.043 回答