我正在使用Realm来保持持久性。现在我真的很困惑,我是否应该使用领域。
我正在使用almofire,ObjectMapper和Realm以下是我的代码。
的UserInfo
class UserInfo:Object,Mapper
{
dynamic var name:String?
dynamic var accountTye:String?
dynamic var loginResult: String?
}
我从登录服务器获得成功回复后。
====== UserSessionManager
var userInfo:UserInfo?
UserSessionManager.shared().saveSession()
func saveSession()
{
RealmHelper.shared().save(userInfo!)
}
RealmHelper
func save<T:Object>(_ realmObject:T) {
let backgroundQueue = DispatchQueue(label: ".realm", qos: .background)
backgroundQueue.async {
let realm = try! Realm()
debugPrint("Realm Creation (Thread.current)") I am getting same thread
if realm.isInWriteTransaction{
return
}
try! realm.write {
debugPrint("Realm add (Thread.current)") I am getting same thread
realm.add(realmObject)
}
}
}
当我尝试访问UserSessionManager.shared()。userInfo对象时,我遇到了这个崩溃。
我不明白为什么会这样。
答案 0 :(得分:0)
我通过从Realm访问UserInfo对象来修复此问题。 问题是我正在将Realm对象(UserInfo)添加到Realm中。
我正在尝试访问直接存储在另一个单例类中的同一个对象,这导致了我的问题。
现在我从领域中恢复后访问同一个对象,现在没有问题,
但是,一旦我们将Realm对象添加到Realm,我就不会这样访问它。