gpt4 book ai didi

ios - collectionView 中每个单元格的 NSFetchedResultsController

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

我有一个带有 NSFetchedResultsController 的 collectionView。 collectionView 中的一些 cell 会从核心数据中查询到额外的嵌入式 UI 元素,这些额外的嵌入式 UI 元素也需要 NSFetchedResultsController 的更新功能。

所以我的问题是,推荐的方法是什么?

由于单元格的数量以及每个单元格是否嵌入了 UI 元素取决于从服务器实际获取的数据,我们不能使用 NSFRC 的 sectionKeyPath 吧?

编辑:额外的 UI 元素与嵌入单元格不是同一模型,因此需要单独的查询(NSPredicate)。

编辑:我们的核心数据模型:

RelationModel
type
status
Relationships(fromProfile, toProfile)

ProfileModel
..many fields
Relationships(photos)

基本上,额外的 UI 元素将是 toProfiles,嵌入单元格是 fromProfile。但是因为应用程序中有不止一种关系,我们决定有一个单独的关系模型。而且我发现很难设置从 ProfileModel 到 RelationModel 的关系

最佳答案

NSFetchedResultsController 是一个非常酷的对象。它执行一次获取,然后监视核心数据的变化。虽然它有一个依赖于 indexPaths 的接口(interface),因此很自然地会将这些 indexPath 视为与您的 collectionView 相同的 indexPaths,但并不要求您这样做。 fetchedResultsController 的 indexPaths 可以不同于 collectionView 的 indexPaths - 您只需要注意跟踪您正在处理的 indexPaths 并从一个转换为另一个。

例如:您有一组从核心数据中获取的小部件。一些小部件具有 extraWidgetInfo 属性,您希望在 UI 中将其显示为额外的单元格。 fetchedResultsController 表示有 4 个元素(全部在第 0 节中)。但是 collectionView 可以将其显示为

[第 1 节] 小部件 1,

[section2] widget2,widget 2 额外信息,

[section3] widget3,

[section4] widget4,widget 4 额外信息。

虽然 fetchedResultsController 只说有 4 个元素,但 collectionView 中有 6 个单元格。在处理更新时,您还必须翻译 fetchedResultsController indexPath。更新将转换为重新加载部分,添加将转换为插入部分并在该部分中插入一定数量的行。您也可以在核心数据更新时调用 reloadData(如果您的数据很少更新,这可能是个不错的选择)。

关于ios - collectionView 中每个单元格的 NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49785480/

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