ios - 如何避免核心数据中的重复记录 - ios

标签 ios swift core-data

我是 iOS、Swift 新手。我的应用程序有一个名为“类别”的实体,与许多名为“电影”的实体存在关系。

根据我从网址获取的数据,“电影”实体正在发生变化。我正在寻找一种不在每个类别中都有重复电影记录的方法,但我想不出一种简单的方法来做到这一点。

最佳答案

核心数据没有内置的方法来确保唯一性。你必须自己管理。但这并不难。在每次插入/更新之前执行一次获取 - 如果不存在则创建它,如果已存在则更新它。如果您一次更新多个实体(例如,从具有多个实体更新的网络请求),则在单个提取请求中提取所有内容,然后根据需要创建或更新。

通常,这些获取是使用每个实体的 uniqueId 来完成的。如果您的实体没有任何 uniqueId,那么您将遇到比核心数据更深层次的问题。您可以拥有两部同名的电影,也可以拥有一部不同名称的电影。如果您没有任何相同的内容,那么您从根本上没有任何方法知道是否需要创建另一个实体或更新现有实体。您可以使用电影名称,但我不建议这样做。我建议您仔细查看您的服务器 api,看看是否有提供的 uniqueId,如果没有,则必须由服务器团队修复它。

关于ios - 如何避免核心数据中的重复记录 - ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44237743/

相关文章:

ios - Apple HTTP Live Streaming 的 openssl aes-128 加密问题

ios - UITextView 委托(delegate)多次调用

ios - 从核心数据中获取数据

iphone - 使用 Core Data 实现枚举的最佳方法

ios - 不同 NSArray 对象的组合

php - 如何让 str_replace 识别使用 glob 检索的文件名中的变音符号(在 Mac 上)?

iphone - 具有用于渲染和游戏逻辑的独立计时器的游戏循环

ios - 类型 'UIGestureRecognizer' 的值没有成员 'numberOfTapsRequired' 为什么会出现此错误?

swift - 有没有一种方法可以有 float 区域,这样我们就可以在 Xcode 的多个屏幕上工作?

swift - 删除一个 NSManagedObject