私はrealmListを持っています。私は与えられたクラスの学生のリストを要求し、studentListの中でそれを更新したい。 返されたサーバーのstudentListには、古い学生と新しい学生が含まれる場合があります。だから私は本当の一流の人が古い学生のための情報を更新し、もしあれば新しい学生を加えることを望みます。私がやった何RealmListのrealmObjectの追加/更新
、
- は、サイズのループを開始== serverReturnedStudentList.size()
- 作成されたループ内の学生とレルムに追加が
- (realm.copyToRealmOrUpdate(学生)を使用して)
- クラスXの受講者リストを取得し、studentListにそのmanagedObjectが含まれているかどうかを確認します。
- もしそうでなければ、studentをstudentListに追加しました。それ以外は何もしませんでした。
期待どおりに動作していますが、これは正しいアプローチではありません。 「contains」チェック(@ step4)をスキップし、管理対象オブジェクトをrealmListに直接追加すると、複数のエントリがrealmListに表示され始めます。
このシナリオを処理するにはどうすればよいでしょうか?
もう1つ問題は、各クラスの下に「n」個のクラスと「x」セクションがあることです。私は並行してnxリクエストを作成していますが、asyncExecutionsをnx回起動しようとすると、プールサイズ制限の例外(明白です)が発生し、UIが3〜5秒間応答しなくなる各学生リストのループは、学生ごとにexecuteTransactionで実行されています)
ご意見やご提案は高く評価されます。
ありがとうございました。乾杯!
'複数のエントリがrealmListに表示され始めます。このシナリオを処理する最良の方法は何でしょうか? 'あなたは' @ PrimaryKey'を持っていますか? – EpicPandaForce
また、生徒ごとにトランザクションを実行しないでください。その理由はわかりません。 – EpicPandaForce
@EpicPandaForceはい私は各生徒オブジェクトのプライマリキーを持っていますし、さらに明確にするために、生徒のための単一のオブジェクトxがありますが、studentList.contains(studentX)ステップをスキップするとstudentListのstudentXに複数のエントリがあります学生リストにstudentXを追加する。 – AndoAiron