【发布时间】:2021-03-12 15:03:26
【问题描述】:
我正在学习如何使用 Core Data,我非常接近于使用这个模块构建一个简单的项目,但我不清楚 MOC 子类的用途是什么? 有一次听说[NSManagedObject Name]+CoreDataClass.swift 可以用一些方法修改。 所以我有 3 个关于他们的问题:
【问题讨论】:
我正在学习如何使用 Core Data,我非常接近于使用这个模块构建一个简单的项目,但我不清楚 MOC 子类的用途是什么? 有一次听说[NSManagedObject Name]+CoreDataClass.swift 可以用一些方法修改。 所以我有 3 个关于他们的问题:
【问题讨论】:
我可以使用 CoreDataClass 作为数据的 ViewModel
从技术上讲,这是做事的标准方式,只是在 CoreDataClass 和 ViewModel 之间有一个中间概念,即@FetchRequest。现在就个人而言,我总是看到直接在视图上使用 CoreData (@FetchRequest),因为没有必要进一步抽象它。
这些文件的真正用途是什么?
在 CoreDataEntity 的 GUI 中,有一个 ClassDefinition 或 ClassGen 选项。这些文件是 swift 自动为您制作的文件。现在取决于您是否看到它们将取决于您为 ClassDefinition 选择的内容。
此问题与您的第一个问题直接相关,因为本质上此文件用作视图模型。因为在这些文件中你将拥有你的属性
例子:
@NSManaged var name: String
为什么我的简单函数不保存(它当然是 Point+CoreDataClass.swift 文件的一部分)
你离得很近。那就是你没有定义一个上下文 你需要先说:
let myData = YourEntityName(context: context)
然后说:
myData.pointName = name
然后
context.save()
【讨论】: