【问题标题】:NSManagedObjectContext SubclassesNSManagedObjectContext 子类
【发布时间】:2021-03-12 15:03:26
【问题描述】:

我正在学习如何使用 Core Data,我非常接近于使用这个模块构建一个简单的项目,但我不清楚 MOC 子类的用途是什么? 有一次听说[NSManagedObject Name]+CoreDataClass.swift 可以用一些方法修改。 所以我有 3 个关于他们的问题:

  • 我可以使用 CoreDataClass 作为数据的 ViewModel 吗?
  • 这些文件的真正用途是什么?
  • 为什么我的简单函数没有保存(它当然是 Point+CoreDataClass.swift 文件的一部分)

【问题讨论】:

    标签: swift core-data swiftui


    【解决方案1】:

    我可以使用 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2019-09-26
      • 2012-12-26
      • 1970-01-01
      • 2015-07-13
      • 2016-08-24
      • 1970-01-01
      相关资源
      最近更新 更多