如何在屏幕之间共享领域对象
How to share realm objects between screens
我正在开发一个用 Swift 编写的应用程序,它需要例如当前登录用户在多个屏幕上的数据,并从 API 更新后保存数据。
获取此数据的最佳做法是什么?通过 selection 从数据库中获取实例,如下所示:
do {
let realm = try Realm()
let result = realm.objects(User).filter("name = \(loggedInPlayerName)")
if result.count > 0 {
return result.first
}
}
或者通过(单例)SessionService 或类似的东西获取一次后共享它?
或者让播放器模型对象有一些 selection 方法,比如 User().getLoggedInUser() ,它有上面写的方法 select 一个实例?
希望对如何正确执行此操作有一些想法!
正确,我会做那样的事情!我假设 loggedInPlayName 是一个唯一的 ID,因此您可以将 属性 名称设置为主键。
那我会做:
let user = realm.objectForPrimaryKey(User.self, key: loggedInPlayerName)
我正在开发一个用 Swift 编写的应用程序,它需要例如当前登录用户在多个屏幕上的数据,并从 API 更新后保存数据。
获取此数据的最佳做法是什么?通过 selection 从数据库中获取实例,如下所示:
do {
let realm = try Realm()
let result = realm.objects(User).filter("name = \(loggedInPlayerName)")
if result.count > 0 {
return result.first
}
}
或者通过(单例)SessionService 或类似的东西获取一次后共享它?
或者让播放器模型对象有一些 selection 方法,比如 User().getLoggedInUser() ,它有上面写的方法 select 一个实例?
希望对如何正确执行此操作有一些想法!
正确,我会做那样的事情!我假设 loggedInPlayName 是一个唯一的 ID,因此您可以将 属性 名称设置为主键。
那我会做:
let user = realm.objectForPrimaryKey(User.self, key: loggedInPlayerName)