【发布时间】:2021-01-10 11:20:08
【问题描述】:
我的 CoreData 具有简单的关系,如下所示。一个具有 4 个属性的实体 Word 和一个具有一对多关系的 Chapter 实体(每个单词只出现在一个章节中,并且章节包含多个单词)。当我尝试导入包含单词列表和相关章节的文件时,会创建尚未在数据库中的章节(这是我想要的),但已经存在的章节是第二次创建的(新的相同条目在核心数据)。我可以在 xcdatamodel 中激活一个选项来检查和避免关系实体上的重复条目吗?
代码详情 ->
fileprivate func saveAllWords(_ items: [(name: String, definition: String, example: String, chapter: String)]?) {
for item in items! {
let newWord = Word(context: self.context)
newWord.name = item.name.trimmingCharacters(in: .whitespaces)
newWord.definition = item.definition.trimmingCharacters(in: .whitespaces)
newWord.example = item.example.trimmingCharacters(in: .whitespaces)
newWord.option = 10 // option tag indicating that it's a new entry from external fileI generate a classic word
//
let myNewChapter = Chapter(context: self.context)
myNewChapter.name = item.chapter
newWord.chapter = myNewChapter
}
……
// Save the data in Core Data
do {
try self.context.save()
}
catch {
}
任何建议如何实施此唯一性约束来解决我的重复问题?
【问题讨论】:
-
您正在寻找的特征称为唯一性约束。如果没有看到您的代码,很难说如何将其应用于您的案例。
-
感谢您的回复,如您所见,我附上了代码,我猜您拥有与此问题相关的所有主要代码。
-
@pbasdf,或其他任何知道的人:请您看看我的代码并告诉我遵循您提到的唯一性约束缺少什么?
标签: core-data