2016-11-03 2 views
0

私のコードでは、私は、二つのクラスは次のようにリンクしていますレルムはスウィフト、関係およびメモリ空間のエラー

class parent: Object { 
    dynamic var id:Int = 0 
    let children = List<child>() 
    ... 
} 

class child: Object { 
    dynamic var myParent = parent? 
    ... 
} 

が、私はそれが簡単に子供の親を見つけることができるようにするために行われ、彼の子供ています親。私は親を取得したいとき しかし、今は、:

let myParent = realm.objects(parent).filter("id == 1").first 

を私はお返しに非常に大きなJSON文字列を取得します。私の親には多くの子供がいて、各子供には親と子供が表示されるので...私のjsonはほぼ無限です。

「メモリサイズを割り当てることができません」というエラーが発生することがありますか? このように私の子供を宣言する方が良いでしょう:非常に大きなJSONは、メモリ空間エラーの原因になることができるかどうかはわからない

class child: Object { 
    dynamic var myParentId:Int = 0 
    ... 
} 

私は私の質問に願っていますが十分に明確である:)あなたの助けのための

ありがとう!

+0

JSONとはどういう意味ですか? JSONとRealmはどのように組み合わされていますか? – TiM

+0

実際、JSON結果のPRINTを実行すると、JSONが表示されます。これは私が話しているこのJSONです。それは良いですか? :) – Adz

+0

ああ大丈夫です!実際にはJSONではなく、Xcodeがコンソール内のオブジェクトをどのように出力しているかをもっと詳しく知ることができます。彼らはかなり同様に見える! – TiM

答えて

1

実際に、子供と親の間の2つの関係を、あなたが発見したように手動で管理することができますが、それはかなり難しいことがあります。

レルムは、inverse relationshipsのサポートを提供します。inverse relationshipsでは、オブジェクトがどのオブジェクトに属しているか検索できます。

class parent: Object { 
    dynamic var id:Int = 0 
    let children = List<child>() 
    ... 
} 

class child: Object { 
    let parent = LinkingObjects(fromType: parent.self, property: "children").first 
    ... 
} 

あなたがここでやろうとしていることをうまく自動化する必要があります。 :)

+0

ありがとう、それは私が探していたものです。私はこれを試し、私の記憶問題を解決することを願っています。 – Adz

関連する問題