注销后销毁或重置单身领域回购?

问题描述 投票:0回答:1

我在整个视图中都将我的 Realm 存储库用作单例类。

我像这样使用回购协议:

var repo = SingletonRepo.shared

单例类:

class SingletonRepo{
    static let shared = RealmRepo()
    
    private init() { }
}

在注销和重新登录之前一切正常。领域同步变得不活跃。

发生这种情况,我认为,因为单例不会在重新登录时被重置/销毁。

解决这个问题的最佳方法是什么?销毁或重置回购协议?我应该在哪里做?在登录方法中还是在注销时?

还有我如何在同一个单例类上做到这一点?创建方法重置/删除回购?

swift realm mongodb-atlas realm-mobile-platform
1个回答
0
投票

一个可能的解决方案是您可以根据登录的用户创建领域回购,我的意思是完全以用户为中心的回购。

喜欢:

   class LoginUser {
      var realmRepo:RealmRepo = RealmRepo()
   }

   class RealmRepo {
   }

用户登录后创建一个用户实例,例如:let user = LoginUser()

现在访问 RealmRepo 像这样: let repo = user.realmRepo

现在将这个 repo 用于所有目的

当用户注销时,只需将用户设为 nil,例如:user = nil

通过设置 nil 登录用户也将丢弃/销毁你的回购协议

因此,对于每个新用户,将创建 realmRepo 的新实例,并在注销后设置 user=nil repo 将被丢弃。

我希望这样你的同步问题也能得到解决

© www.soinside.com 2019 - 2024. All rights reserved.