我很好奇是否在主线程上执行了这样的读/写操作:
try! realm.write {
realm.add(myDog)
}
这很重要,因为我想在读取或写入域之后直接运行操作。
答案 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
}
}
}