当我尝试更新Realm中的对象时,会发生错误。 我附上了我的代码。
class FHRealm
{
static let sharedInstance = try! Realm()
class func writeUserToRealm(userInfo:userInfo)
{
DispatchQueue.main.async {
autoreleasepool
{
sharedInstance.beginWrite()
sharedInstance.add(userInfo)
try! sharedInstance.commitWrite()
}
}
}
class func updateUserInRealm(userInfo:userInfo)
{
DispatchQueue.main.async {
autoreleasepool
{
sharedInstance.beginWrite()
sharedInstance.add(userInfo, update:true)
try! sharedInstance.commitWrite()
}
}
}
}
我在ViewController中调用了Update函数。
FHRealm.updateUserInRealm(userInfo: userInfo.sharedInstance)
我无法预料到会出现什么问题。 请帮助我。
答案 0 :(得分:6)
我没有看到问题的确切原因,但这可能是一个导致:
sharedInstance
可能是主线程。你正在将realm Object传递给它,可能来自另一个线程。
如果您阅读Realm docs:
跨线程使用Realm的唯一规则是记住Realm,RealmObject或RealmResults实例不能跨线程传递。
所以我首先要说的是,不是调用你的包装器,而是直接从调用者对象中进行操作。