APIからJSONの束を掴んでレルムデータベースに埋め込む "importData"関数があります。レルム結果コールバックでソート
files: [
300,
19,
102
]
数字は私が前にすでにこれらの取得に処理/インポートしたJSONのための部品でのidのに関連して、基本的に属しているファイルのリストだけです。そのJSONの一部は次のようになりますグループ。
ので、私のレルムオブジェクトのようにこれは、モデル化される。
class SomeGroup : Object {
let files = List<File>()
}
私はファイルの関係をリンクアップ時に、ファイルが正しい順序になるようにこれらのIDのソート順序を保持する必要があります。
私は次のように私は、クエリを実行するアップリンクする必要があるファイルのモデルをつかむために:
let thefiles = realm.objects(File.self).filter("id IN %@", fileIds)
問題は、これは別の順序でそれらを返し、.sorted
方法が唯一の並べ替えモデルでできています(私がドキュメントから知ることができるものから)属性。
私は結果をループして、基本的なArray<File>
またはList<File>
型にResult<File>
タイプからそれらを回すと考えるので、私は彼らに自分自身を並べ替えることができ、しかしそれはレルムポインタ情報を失うことになるので、私はレルムがすることはできないことを期待しますリンクを作成します。
他の唯一のことは、各ファイルをクエリしてそれをグループファイルの関係に別々に追加することですが、クエリを実行するとクエリの数が急増します。
Result<File>
型をカスタム関数/コールバックで注文してjsonのid配列と一致するようにする最良の方法を教えてもらえますか?
ファイルがコレクションに追加される順序は、モデルやワークフローに関連しているなら、あなたはモデルに「注文」キー( 'File'オブジェクト)を追加する必要があります。 JSON入力を反復して 'File'オブジェクトを作成し、後で正しい順序を得るためにクエリーでそれを使用するときに、このオブジェクトを設定します。 –
@bogdanf多対多の関係です。順序キーを設定するには、関係に順序を置く必要があります(mysqlのピボット・テーブルの余分な列に似ています)。 – TRG
はい、正しく、グループとファイルへのリンクとファイルの順番を持つ「関係」オブジェクトを作成してみませんか? –