gpt4 book ai didi

ios - NSFetchedResultsController 错误 : 'NSInvalidArgumentException' , 原因:'-[NSSortDescriptor countByEnumeratingWithState:objects:count:]:

转载 作者:行者123 更新时间:2023-11-28 19:58:45 25 4
gpt4 key购买 nike

我正在尝试创建一个 NSFetchedResultsController 并请求从特定区域获取照片。我的核心数据中有两个模型 Region 和 Photo。以下是我收到错误的代码:

- (void)setRegion:(Region *)region
{
_region = region;

// Making a request for the particular region
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Photo"];
request.sortDescriptors = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedStandardCompare:)];
request.predicate = [NSPredicate predicateWithFormat:@"fromRegion = %@", region];
NSLog(@"%@", region.name);

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:[region managedObjectContext]
sectionNameKeyPath:nil
cacheName:nil];
}

我收到以下错误:

-[NSSortDescriptor countByEnumeratingWithState:objects:count:]: 无法识别的选择器发送到实例 0x8d67850

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSSortDescriptor countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例 0x8d67850”

我不明白为什么我会收到它。我所做的只是从包含特定区域的数据库中检索照片。但是,我在 self.fetchedResultsController 行收到错误消息。这个包含这段代码的核心数据 TableView Controller 实际上是另一个核心数据 TableView Controller 的指定 View Controller 。

我四处寻找其他解决方案,但它们只处理与遍历 self.fetchedResultsController 相关的问题,而我没有这样做。我只在来自 fetchedResultsController 的表格 View 中显示照片。

最佳答案

问题出在这里:

request.sortDescriptors = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedStandardCompare:)];

获取请求使用一组排序描述符,因为您可以提供多个。这就是为什么它是 sortDescriptors 而不是 sortDescriptor 的原因。您需要提供一个数组。一个简单的解决方法是更改​​行以创建一个包含您的描述符的单元素数组:

request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedStandardCompare:)]];

这就是问题所在的其他证据:countByEnumeratingWithState:objects:count: 是一种由 NSFastEnumeration 协议(protocol)定义的方法。由于 NSArray 采用了该协议(protocol),因此有望实现该方法。但由于 NSSortDescriptor 不采用该协议(protocol),因此它不会有该方法。

关于ios - NSFetchedResultsController 错误 : 'NSInvalidArgumentException' , 原因:'-[NSSortDescriptor countByEnumeratingWithState:objects:count:]:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com