Swift:存储currentUser而不是单例的其他方法是什么?

时间:2017-02-18 21:37:26

标签: ios swift design-patterns singleton

我在我的项目中使用单例但是已经在stackOverflow读取单例是不好的。

我有一个app appate appate获取currentUser信息。我需要在整个应用程序中访问这些信息,除了使用单例存储currentUser然后访问它之外还有什么方法?

我还使用单例来表示firebaseController(一个视图控制器,用于解析在整个应用程序中再次使用的firebase中的数据)。这是一个好主意还是更好的替代方案?

1 个答案:

答案 0 :(得分:4)

有几种方法可以避免当前用户的单身人士。

  1. 您可以将当前用户作为应用程序委托中的类级别var保存,然后将其传递给视图控制器或其他需要它的类。

  2. 您可以将当前用户信息保留在Core Data或NSUserDefaults中,并在您需要的地方检索它。

  3. 我更喜欢选项1,因为它更适合访问当前用户的单元测试代码。

    在我看来,单身人士本身并不坏。我认为当它们被用作全局变量时它们会变得很糟糕,您可以从代码中的任何位置直接访问和访问它们。那应该避免!但是你可以拥有一个你传递的单身,除非传递给你,否则不会访问。