gpt4 book ai didi

objective-c - 由于objectID在临时对象和永久对象之间变化,如何有效地处理Core Data中的临时对象?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:54 25 4
gpt4 key购买 nike

在 Core Data 中处理临时对象的最佳方式是什么?我见过创建临时上下文、将临时上下文插入 nil 上下文等的解决方案。

但是,这是我在这两种解决方案中都遇到的问题。我正在为我的对象模型使用 Core Data,并且在我的一些 View 中存储了 NSSet 的 Core Data 对象。我遇到的问题是当对象被存储时,objectID 发生变化,这实际上使任何 NSSet 中存储的任何内容无效,因为 isEqual 和哈希现在不同了。虽然我可以使存储在 NSSet 中的对象无效,但这通常不切实际,而且肯定并不总是那么容易。

这是我考虑过的事情:

1) 在 NSManagedObject 上覆盖 isEqual 方法和散列(显然很糟糕)

2) 不要在 NSSet 中放置任何 NSManagedObject(使用 NSDictionary,其中键总是固定的)

3) 使用完全不同的类型存储在 NSSet 中,我可以在其中正确实现 isEqual 和哈希码方法

有人对此有更好的解决方案吗?

最佳答案

NSSet 中的 ManagedObjects —— 这听起来像是 Core Data 关系。为什么不简单地将您的临时托管对象存储在一个关系中,让 Core Data 处理您现在遇到的问题。然后您可以专注于何时以及如何删除临时对象,或者中断关系或任何需要的事情。

关于objective-c - 由于objectID在临时对象和永久对象之间变化,如何有效地处理Core Data中的临时对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584668/

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