当我尝试更新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)
我不能指望出了什么问题.请帮我.
我没有看到你的问题的确切原因,但这可能是一个主角:
sharedInstance
可能在主线程上.你正在向它传递领域对象,也许是从另一个线程.
如果您阅读Realm文档:
跨线程使用Realm的唯一规则是记住Realm,RealmObject或RealmResults实例不能跨线程传递.
所以我首先要说的是,不是调用你的包装器,而是尝试直接从调用者对象进行操作.