首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS13 DiffableDataSource无效参数不满足要求: indexPath || ignoreInvalidItems

iOS13 DiffableDataSource无效参数不满足要求: indexPath || ignoreInvalidItems
EN

Stack Overflow用户
提问于 2019-11-25 18:36:10
回答 4查看 2.9K关注 0票数 7

我正在将我的收藏视图转换为新的iOS13 UICollectionViewDiffableDataSource...因此,我需要按需更新单元格信息。

下面是我的代码:

代码语言:javascript
复制
let snap = self.diffDataSouce.snapshot
snap?.reloadItems(withIdentifiers: [itemToUpdate]) //reload cell info
self.diffDataSouce.apply(snap, animatingDifferences: true)

但我得到了Invalid parameter not satisfying: indexPath || ignoreInvalidItems ...why?我当前的snap包含itemToUpdate和我的模型数组...

我认为这是因为根据数据模型,snap.indexOfItemIdentifier(itemToUpdate)返回not found (NSNotFound)...but是不可能的。

你有什么提示吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-22 15:17:22

我在尝试重新加载已从快照中删除的项目时遇到了此问题。这将使您得到相同或类似的错误。确保数据模型和快照同步以避免此错误。

票数 0
EN

Stack Overflow用户

发布于 2020-01-17 23:23:21

您的数据模型必须符合HashableEquatable,以便差异算法可以跟踪快照之间的更改。

如果两个对象之间存在冲突问题,或者您已经以允许两个对象看起来与diffing算法相等的方式实现了这两个协议中的任何一个,您将得到一个运行时assert异常。

我会准确地跟踪您的模型对象是如何继承或实现这些协议的。

票数 4
EN

Stack Overflow用户

发布于 2019-12-07 22:00:30

你已经为你的模型实现了static func ==了吗?我在使用结构时遇到了类似的问题,在结构中,所有属性之间的相等性都会被计算出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59029833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档