簡體   English   中英

將一個實體的數據添加到另一個實體 Coredata

[英]Adding data of one entity to other entity Coredata

我有一個名為 Course 和其他名為 Tasks 的實體。 要完成課程,用戶可以創建多個任務。 現在我有一個帶有 UITextFields 的屏幕,它獲取課程數據並存儲它。 用戶可以創建多個課程並在表格視圖中查看它們。

現在,如果用戶選擇一門課程,他將從核心數據中獲取課程詳細信息,但同時他也可以在該課程中添加任務。

那么我的問題是:我怎么知道正在保存的任務必須鏈接到用戶選擇的特定課程。

附數據庫截圖: 任務 課程作業

如果我不清楚,請發表評論。

這就是我在 CoreDataHandler.swift 文件中嘗試做的

  class func saveTask(courseWorkName : CourseWork, taskName:String, percentComplete:Int, startDate:Date, endDate: Date, notes: String) -> Bool {
    let context = getContext()
    let entity = NSEntityDescription.entity(forEntityName: "Tasks", in: context)
    let task = NSManagedObject(entity: entity!, insertInto: context)

    let entity1 = NSEntityDescription.entity(forEntityName: "CourseWork", in: context)
    let courseWork = NSManagedObject(entity: entity1!, insertInto: context)


  //  task.setValue(entity1, forKey: "courseworkName")
    task.setValue(taskName, forKey: "taskName")
    task.setValue(percentComplete, forKey: "moduleName")
    task.setValue(notes, forKey: "notes")
    task.setValue(startDate, forKey: "startDate")
    task.setValue(endDate, forKey: "dueDate")
    task.setValue(courseWorkName, forKey: "courseWork")


    do {
        try context.save()
        return true
    }catch {
        return false
    }
}

將您的 courseWork Object 傳遞給下一個推送的 controller 並訪問它。

在將數據輸入表時,請執行以下操作:

objCourse.tasks.append(task)
task.courseWork = objCourse

通過這樣做,您可以獲得反向關系。 使用它,您可以使用任務訪問課程,反之亦然。

像這樣訪問它:

objCourseWork.tasks
objTask.courseWork

如果你的 model 中的關系已經定義如下,你只需將任務的課程屬性設置為它應該與之相關的課程 object。

在此處輸入圖像描述

玩得開心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM