如何在屏幕之间共享领域对象

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)