Realm.io:在主线程上执行写/读操作吗?

时间:2016-06-08 12:27:04

标签: ios swift realm

我很好奇是否在主线程上执行了这样的读/写操作:

try! realm.write {
   realm.add(myDog)
}

这很重要,因为我想在读取或写入域之后直接运行操作。

1 个答案:

答案 0 :(得分:1)

在与同步调用write()方法的线程相同的线程上执行块。换句话说,如果在主线程上调用write(),则该块将在主线程上执行。

dispatch_async(dispatch_queue_create("background", nil)) {

  // Some operations in a background thread ...

  try! realm.write {
    // this block will be executed on the background thread
  }
}

如果您想在主线程上执行写操作,您可能需要根据需要调度到主线程。

dispatch_async(dispatch_queue_create("background", nil)) {

  // Some operations in a background thread ...

  dispatch_async(dispatch_get_main_queue()) {
    try! realm.write {
      // this block will be executed on the main thread
    }
  }
}