gpt4 book ai didi

ios - NSFetchedResultsController 可以与 NSDictionaryResultType 一起使用吗?

转载 作者:行者123 更新时间:2023-11-29 10:33:42 24 4
gpt4 key购买 nike

我使用 Core Data 将商店存储为 Entity 商店,并且在每个商店我都有一个 Attribute 城市,我想按城市对商店进行分组并呈现一个 UITableView 包含所有城市。我使用 NSFetchedResultsController 获取数据并刷新 UITableView,因为我想对城市进行分组,所以我将请求的 resultType 设置为 NSDictionaryResultType。但是现在当我在我的 NSFetchedResultsController 上使用 objectAtIndexPath 时,我得到了 NSKnownkeysdictionary1 我的问题是我可以让 NSFetchedResultsController 处理NSDictionaryResultType 或者我应该在这种情况下放弃使用 NSFetchedResultsController 并采取其他方法?

最佳答案

您必须为其设置 NSExpressionDescription 以获取适当的值。你可以这样做,

- (NSFetchedResultsController *)fetchedResultsController
{
if (!_fetchedResultsController) {
NSExpression *cityKeypath = [NSExpression expressionForKeyPath:@"identifier"];
NSExpressionDescription *cityDescription = [[NSExpressionDescription alloc] init];
cityDescription.expression = cityKeypath;
cityDescription.name = @"City";
cityDescription.expressionResultType = NSStringAttributeType;


NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Shop"];
[fetchRequest setPropertiesToFetch:@[cityDescription]];
[fetchRequest setPropertiesToGroupBy:@[@"city"]];
[fetchRequest setResultType:NSDictionaryResultType];

fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"city" ascending:YES]];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];

_fetchedResultsController.delegate = self;
NSError *error;

[_fetchedResultsController performFetch:&error];
}
return _fetchedResultsController;
}

因此,您需要为要获取的属性提供 NSExpressionDescription。 NSFetchedResultsController 结果将以这样的字典类型存在,

 {
@"city": "Kansas"
}
...

关于ios - NSFetchedResultsController 可以与 NSDictionaryResultType 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28171562/

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