2016-12-12 9 views
1

私は、最初のデータベース構築でまともな経験を持って、iOS開発とレルムについてはかなり新しいです。レルムRealing ExplorerでRealm LinkingObjectsプロパティが表示されない

は、私は1つのルーチンは、さまざまなワークアウトを含むことができ、クラス間の多くの関係ルーチンワークアウト、1つを持っています。ここに私のクラスは次のとおりです。

class Routine: Object { 
    //Properties 
    dynamic var id : Int = 0 
    dynamic var routineName : String = "" 

    //Relationships 
    let workouts = LinkingObjects(fromType: Workout.self, property: "routine") 

    //Primary Key Declaration 
    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 

class Workout: Object { 
    //Properties 
    dynamic var id : Int = 0 
    dynamic var workoutName : String = "" 

    //Relationships 
    let exercises = List<Exercise>() 
    dynamic var routine : Routine? 

    //Primary Key Declaration 
    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 

は私が所望の関係のためにこの権利をやっていますか?これを構築してレルムブラウザで見ると、ルーチン内のプロパティworkoutsは表示されません。

ありがとうございました。

+0

ええと、ブラウザでプロパティを表示する必要があります。エクササイズとルーチンが保存されていることをアプリのコードから確認できますか?その情報をレルムから取り戻すことはできますか? – TiM

+0

私が今までに悩んだことは、ブラウザに入っていて、アプリケーション自体から何も操作を試みていないが、私はそれを2番目に見ることができる。また、明らかに正しく表示されていない唯一のプロパティは、上でサンプリングされたLinkingObjectsプロパティのワークアウトです。 – Carlton

答えて

1

これは意図した動作です。 LinkingObjectsは、所有関係のモデルオブジェクトにプロパティの関係でリンクされている0個以上のオブジェクトを表します。また、自動更新コンテナタイプです。新しいWorkoutオブジェクトを追加してroutineプロパティを割り当てると、workoutsが自動的に更新されます。

LinkingObjectsは、内部的に永続プロパティより「クエリ」として扱われます。 workoutsプロパティにアクセスすると、Realmは照合して一致するroutineオブジェクトを含むWorkoutオブジェクトを検索します。そのため、workoutsプロパティはレルムブラウザに表示されません。

関連する問題