2017-05-29 68 views
0

我是iOS中的新成员,Swift。我的应用程序有一个名为“类别”的实体与许多名为“电影”的实体有关系。如何避免核心数据中的重复记录 - ios

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

+0

实体是否有唯一的ID? –

+0

不,他们没有。该类别有一个限制,电影没有。 – benh

+0

你在问什么?标题说重复但问题说不? – sage444

回答

0

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

通常这些提取是使用uniqueIds为每个实体完成的。如果你没有任何uniqueId为你的实体,那么你有比核心数据更深的问题。您可以拥有两个具有相同名称的电影,或一个具有不同名称的电影。如果您没有任何相同的内容,那么您基本上无法知道是否需要创建另一个实体或更新现有实体。您可以使用电影名称,但我不会推荐。我建议你仔细观察一下你的服务器api,看看是否有唯一的Id被服务,如果没有,那么你必须让服务器团队修复它。

+0

如何让我的电影名称成为唯一的ID? – benh

+0

按名称获取新数据搜索现有电影时。如果你找到一个然后更新它,如果你没有创建它。 (这又是一个糟糕的想法 - 你的系统对每部电影都有uniqueIds,如果服务器没有给你一个uniqueId,我会感到非常惊讶)。 –