在后台异步保存对象时,我得到RLMException: 'Can not add objects from a different Realm'。但是,如果删除异步代码,相同的保存工作正常。
该对象与现有对象有关系。例如:
class Person: Object {
name: String
school: School
}
class School: Object {
name: String
}
let person = new Person()
person.name = "John"
person.school = school // Existing object selected from a dropdown.
DispatchQueue.global().async {
do {
let realm = try Realm!
try realm.write {
realm.add(person, update: true)
}
DispatchQueue.main.async {
// Success!
}
} catch let error as NSError {
DispatchQueue.main.async {
// Error!
}
}
}
此代码会导致崩溃。但是,如果我删除 DispatchQueye.global().async,一切正常。我遇到了一些线程问题吗?
注意:该school
对象是预先存在的,并且是从Results<School>
集合中选择的。