gpt4 book ai didi

ios - 排序 nsfetchedresultscontroller

转载 作者:行者123 更新时间:2023-11-28 17:40:06 25 4
gpt4 key购买 nike

我在核心数据实体中有这个结构:

ID    Region    SubRegion   SubRegionID    CellText
1 Face Mouth 2 something
2 Face Eyes 1 ...
3 Face Nose 4 ...
...

但我希望我的 tableview (nsfetchedresultscontroller) 以这种方式排序:

每个部分内:按 ID 属性排序的单元格tableView 中的部分:SubRegion 名称,但按 SubRegionID 排序。

我怎样才能做到这一点?到目前为止,我正在这样做,但我不知道按 subregionID 对章节标题进行排序的最佳做法是:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"DataBase" inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(Region like '%@')", @"Face"]];
[fetchRequest setPredicate:requestPredicate];

NSSortDescriptor *ID = [[NSSortDescriptor alloc]
initWithKey:@"ID" ascending:YES];

[fetchRequest setSortDescriptors:[NSArray arrayWithObjects: ID, nil]];

[fetchRequest setFetchBatchSize:10];

fetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context sectionNameKeyPath:@"SubRegion"
cacheName:nil];

fetchedResultsController.delegate = self;

感谢您的宝贵时间!

最佳答案

您的谓词中存在一些冗余。而不是

NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(Region like '%@')", @"Face"]];

应该是

NSPredicate *requestPredicate = 
[NSPredicate predicateWithFormat:@"%K == %@", @"Region", @"Face"];

它也可能与您设置 NSFetchedResultsController 的方式有关。您应该将 sectionNameKeyPath 设置为“SubRegionID”,而不是“SubRegion”。在您的 tableView 数据源 方法 titleForSection: 中,您应该根据 ID 返回子区域的名称。

关于ios - 排序 nsfetchedresultscontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526573/

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