1

我有一个应用程序,它允许用户创建带有标题的文档并为其分配作者。当从列表中导入新对象时,我试图防止重复的对象被输入到我的核心数据数据库中。我正在尝试遵循Apples 文档中的建议,该建议建议加载所有正在导入的对象,然后查询数据库以查看这些对象中是否已经存在,然后适当地处理重复项。在他们的示例中,他们正在查询单个属性:

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(employeeID IN %@)", employeeIDs]];

不过,在我的例子中,我有两个属性定义了一个唯一的对象:标题和作者。所以我不能简单地使用:

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(title IN %@) AND (author IN %@)", titleList, authorList]];

我知道我可以使用一系列 or 语句,但这似乎效率低下。

关于如何有效地获得具有正确标题作者配对的对象的任何想法?

4

1 回答 1

0

听起来你需要 2 个实体。文件和作者。文档具有标题属性和与作者的关系。然后在导入时,它需要 2 个阶段,但这还不错。

首先,您可以导入所有新作者,首先检查已经存在的作者。

然后处理新文档,排除已经存在的文档并与作者建立关系。

对于这种情况,我认为您无需尝试变得比这更聪明-您只会使情况复杂化。

于 2013-04-30T19:18:23.313 回答