使用单例类来跟踪用户信息是否合适?



我正在开发一个需要用户登录的IOS应用程序。它有一个主视图控制器检查用户是否已经登录。如果没有,它跳转到另一个显示登录提示的视图控制器。当用户登录到那里时,主视图控制器取消登录视图并显示适合登录用户的信息。

应用程序还将用户凭据存储在设置列表中。如果存在该信息,应用程序将尝试使用存储的凭据登录。如果成功,主视图控制器将加载用户适当的信息。如果没有,它将跳转到登录视图控制器。

我最终复制了Master View和Log in View控制器中验证用户id和密码的代码。然后,我需要将prepareforsegue方法中的用户实例传递给任何后续视图。

我应该实现一个单例类来跟踪登录的用户吗?这很诱人,因为它似乎可以节省很多工作。将我在登录视图控制器中使用的用户登录方法委托给主视图控制器并在每次推送新视图控制器时在prepareforsegue中传递用户实例会更好吗?

我应该实现一个单例类来跟踪登录的用户吗?

你当然可以那样做。但是,您也可以创建一个无状态的helper类,根据需要从后备存储读取凭据,从而避免创建单例。

我最终复制了主视图和登录视图控制器中的代码

一个无状态的助手方法(即一个类中只有类(+)方法)将防止代码重复:你最终复制的代码将进入共享的助手类。

应用程序还将用户凭据存储在设置列表中。

如果未加密的密码是用户凭证的一部分,这不是一个安全的解决方案。您应该使用密钥链服务将凭证保存在受保护的存储中。

相关内容

最新更新