【问题标题】:Swift - suggestion of CoreData implement for 2 data modelsSwift - CoreData 实现 2 个数据模型的建议
【发布时间】:2023-04-08 20:48:01
【问题描述】:

我正在开发一个需要管理 2 个数据模型的持久性的应用。

该应用程序非常简单,它可以让我先添加我正在学习的课程,然后为每门课程添加一些任务。

课程将显示在表格视图中,点击课程将在另一个也是表格视图的屏幕中显示任务。

我已经让 CoreData 为 CourseModel 工作,我想我需要 TaskModel 来保持 Task 表的持久性,但我不知道如何让它们一起工作。

这是 CourseModel:适用于课程表

Course
    courseCode: String
    courseTitle: String
    courseDesc: String
    list: CourseList (To One, inverse: members)

CourseList
    members: Course (To Many)

CourseData
    courseCode: String
    courseTitle: String

这是TaskModel:适用于任务表

Task
    taskTitle: String
    taskDueDate: String
    taskTag: String
    list: TaskList (To One, inverse: members)

TaskList
    members: Task (To Many)

TaskData
    taskTitle: String
    taskDueDate: String

我正在使用 Swift 和 CoreData(不是 SQLite)。

任何人请给我一个解决方案。谢谢!

【问题讨论】:

    标签: swift core-data


    【解决方案1】:

    我觉得应该就这么简单:

    Course
    courseCode: String
    courseTitle: String
    courseDesc: String
    tasks: Task (To Many, inverse: course)
    
    Task
    course: Course (To One, inverse: tasks)
    

    一个课程有很多任务,一个任务属于一个课程。

    【讨论】:

      【解决方案2】:

      熬夜之后,找到了一个简单的解决办法:

      • 像这样继续使用两个数据模型,但不要在单独的 xcdatamodeld 文件中创建每个模型。

      • 在同一个xcdatamodeld中创建实体,然后在应用程序中,我们可以随时控制何时以及如何将managedObjectContext传递给ViewController,我们需要更新CoreData

      • 那么如果我想让两个模型一起工作,我可以使用流控语句和条件来管理数据

      我确实在我的应用中应用了这个解决方案,它按预期工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-02
        • 2011-01-29
        • 2011-04-13
        • 2015-04-14
        • 2023-04-11
        • 1970-01-01
        • 2022-07-26
        • 1970-01-01
        相关资源
        最近更新 更多