Swift - 为2个数据模型提供CoreData实现的建议

时间:2016-05-22 13:39:08

标签: swift core-data

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

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

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

我已经让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)。

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

2 个答案:

答案 0 :(得分:0)

我认为它应该像这样简单:

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

Task
course: Course (To One, inverse: tasks)

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

答案 1 :(得分:0)

今晚熬夜后,我找到了一个简单的解决方案:

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

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

  • 然后,如果我想让两个模型协同工作,我可以使用流量控制语句和条件来管理数据

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