在RealmList

时间:2017-04-11 14:46:11

标签: realm realm-list

我有一个realmList,比如一个realmObject中的studentsList,比如说class。我想请求给定班级的学生列表,并在studentList中更新相同的内容。 服务器返回的studentList可能包含旧学生和新学生。因此,我希望我的realmList更新旧学生的信息以及新学生(如果有的话)。

我做的是,

  1. 启动了一个大小为== serverReturnedStudentList.size()
  2. 的循环
  3. 在循环中创建学生并在领域中添加(使用realm.copyToRealmOrUpdate(学生))
  4. 从第2步收到托管学生对象。
  5. 获取X类的学生列表,并检查studentList是否包含该managedObject。
  6. 如果没有,将学生添加到studentList别无效。
  7. 它按预期工作但我知道这不是正确的方法。如果我跳过那个"包含"检查(@ step4)并直接将托管对象添加到realmList,多个条目开始显示在realmList中。

    处理这种情况的最佳方法是什么?

    另一个问题是,我有' n'课程数量和' x'每节课下的部分。我正在并行地发出nx请求,当我尝试nx次启动asyncExecutions时,我得到了池大小限制异常(很明显)并且我无法在UI线程上运行它,因为我的UI在3-5秒内没有响应(虽然每个studentList的循环都是通过每个学生的executeTransaction执行的)

    任何帮助/建议都将受到高度赞赏。

    先谢谢。干杯!

1 个答案:

答案 0 :(得分:0)

这种方法对我来说似乎没问题。您需要了解的一点是,用于更新realmList的 copyToRealmOrUpdate()不会复制具有相同主键的条目的数据。