gpt4 book ai didi

ios - 如何使用 NSFetchedResultsController 实现部分

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

我已经阅读了多个类似的问题和站点,但我对此无法理解。

我有一个 NSFetchedResultsController,它显示来自用户的信息,该用户将信息添加到带有文本字段的 ModalViewController 中。用户会看到一个 ModalView,他们在字段中输入一些单词,单击保存,这就构成了 TableView 中表格的单个分区行,它实现了 NSFetchedResultsController 协议(protocol)。

我现在想做的是:

  • 在其中一个文本字段中,能够根据该文本字段中提供的信息创建一个新部分。

我的获取请求是:

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

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"whoBy.name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
return _fetchedResultsController;

我要显示的属性是occasion.date,也就是说是Transaction实体到Occasion Entity(场合)的关系,createdDate是Occasion实体上的一个属性。

我可以看到 sectionNameKeyPath:nil 需要更新,但我应该将其更新到什么位置,我是否还必须更改任何数据源方法、标题等?

如有任何帮助,我们将不胜感激。

谢谢,

最佳答案

准确的答案取决于应该将什么显示为节标题以及如何部分应该排序。

但通常,您必须向实体添加一个属性,然后将其用作 sectionNameKeyPath 参数。此外,您必须添加一个第一个排序描述符使用相同的 key (这个条件可以稍微放宽)。

例如,如果您简单地向实体添加一个字符串属性 sectionName 并使用作为 sectionNameKeyPath 并作为第一个排序描述符键,然后是所有对象具有相同值的 sectionName 将被分组到一个部分中,并且这些部分将按 sectionName 排序。其余排序描述符用于对每个部分中的对象进行排序。

另一个例子是用字符串属性定义一个单独的实体“Section”“title”和一个整数属性“index”,添加一个一对一的关系“section”来自“事务”到“部分”,并使用section.index 作为sectionNameKeyPath。同样,具有相同部分的所有对象都组合在一起,但这些部分是现在按section.index的值排序,你可以修改tableView:titleForHeaderInSection: 以便 title 显示在部分中标题而不是索引

这很笼统,但我希望它能帮助您入门。

关于ios - 如何使用 NSFetchedResultsController 实现部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499653/

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