2016-04-04 13 views
1

私は2つのレルム・モデルを相互に接続する必要がありますが、モデルに書き込むときにこれを行う方法を理解するのは難しいです。レルム・モデルの関係 - Swift

第1モデルは、第2モデルの前に必ず挿入されます。このモデルは、コース名とコースに関連するいくつかのデータが含まれています

class CourseModel: Object { 

    dynamic var coursename = "" 
    dynamic var par3field = 0 
    dynamic var par4field = 0 
    dynamic var par5field = 0 
} 

第2のモデルコースに関連するすべてのスコアリング・データを持っています

class ScoresModel: Object { 

    dynamic var dateplayed = "" 
} 

私の質問はこれです - どのように私が書くのですかScoresModelデータを検索し、このデータを適切なCourseModelのコース名とそれに関連するデータにリンクさせますか?

bcamurからの回答後: bcamur、フィードバックいただきありがとうございます。これは私が必要とするもののように見えます。しかし、ScoresModelをRealmに書き込む際に、Realmに、私が書いたScoresModelデータをリンクするコース名を知らせるために必要なことは何ですか?

私は現在、このような2つのモデル書いている:

let mycourse = CourseModel() 
     mycourse.coursename = courseName 
     mycourse.par3field = par3s 
     mycourse.par4field = par4s 
     mycourse.par5field = par5s 
     CoursesData.addNewCourse(my course) 

let dataToSave = ScoresModel() 
     dataToSave.dateplayed = dateTextField.text! 
     ScoresData.saveNewScores(dataToSave) 

は、事前にありがとうございます。

+0

をごCourseModelは1 ScoresModel以上より1だけを持っているのだろうか? – bcamur

+0

CourseModelには多くのScoresModelがあります。私は、コース名が重複していないことを確認しています。だから、すべてのラウンドのために、新しいScoreModelがコースのために保存されます。私はそれがはっきりしていることを望む –

答えて

1

あなたCourseModelにリストとしてScoresModelオブジェクトを保存することができます

class CourseModel: Object { 
    dynamic var coursename = "" 
    dynamic var par3field = 0 
    dynamic var par4field = 0 
    dynamic var par5field = 0 

    let scoreModels: List<ScoresModel> = List<ScoresModel>() 
} 

class ScoresModel: Object { 
    dynamic var dateplayed = "" 

    //include this if you want to be able to see which course has this ScoresModel in its scoresModels list 
    var courseModel: CourseModel? { 
     return linkingObjects(CourseModel.self, forProperty: "scoreModels").first 
    } 
} 
+0

bcamur、フィードバックいただきありがとうございます。これは私が必要とするもののように見えます。しかし、ScoresModelをRealmに書き込む際に、Realmに、私が書いたScoresModelデータをリンクするコース名を知らせるために必要なことは何ですか? –

+0

ScoresModelを作成して書き込みトランザクションのscoreModelsリストに追加すると、Realmが残りを処理します。 – bcamur

+0

私はこのbcamurを理解しているか分からない。このようなことをする必要がありますか? let myCourse = NewCourse(); myCourse.coursename = courseName; dataToSave.scoreModels.append(myCourse) –