作者:蒋军利 | 来源:互联网 | 2023-02-11 14:06
我在项目中使用单例,但是一直在stackOverflow上阅读,这很糟糕。
我有一个应用程序,它在应用程序委托中获取currentUser信息。我需要在整个应用程序中访问此信息,除了让单例存储currentUser然后访问它以外,还有什么方法?
我还为firebaseController(用于从Firebase解析数据的视图控制器,在整个应用程序中再次使用)使用了singleton。这是个好主意还是更好的选择?
1> Mike Taverne..:
有几种方法可以避免当前用户出现单例。
您可以将当前用户作为应用程序委托内的类级var持有,然后将其传递到视图控制器或需要它的其他类中。
您可以将当前用户信息保留在Core Data或NSUserDefaults中,并在需要的地方检索它。
我更喜欢选项1,因为它更适合用于访问当前用户的单元测试代码。
我认为单身人士并非天生就坏。我认为当它们用作全局变量时,它们会变得很糟,您可以从代码中的任何位置访问并访问它们。那应该避免!但是,您可能会传递一个单例,除非将其传递给您,否则无法访问。