【发布时间】:2017-01-30 10:18:24
【问题描述】:
在我的 AppDelegate 中
let realm = try! Realm()
print("number of users")
print(realm.objects(User.self).count)
if !realm.objects(User.self).isEmpty{
if realm.objects(User.self).first!.isLogged {
User.current.setFromRealm(user: realm.objects(User.self).first!)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier :"TabBar") as! CustomTabBarController
self.window?.rootViewController = viewController
}
} else {
try! realm.write { realm.add(User.current) }
}
我只在应用程序中没有用户对象时才创建用户
感谢answer 我通过以下方式更新我的对象
public func update(_ block: (() -> Void)) {
let realm = try! Realm()
try! realm.write(block)
}
但事实证明它创建了新的用户对象。如何始终更新已经存在的对象而不是创建新对象?
请注意,我使用 User.current,因为我的对象是单例
在我登录和注销后,它会打印用户数 = 2,这意味着更新现有用户会创建一个新用户
【问题讨论】: