【问题标题】:Swift: What other way to store a currentUser than a singleton?斯威夫特:除了单例之外,还有什么其他方法可以存储 currentUser?
【发布时间】:2017-02-18 21:37:25
【问题描述】:
我在我的项目中使用单例,但一直在阅读 stackOverflow 单例不好。
我有一个应用程序,它在应用程序委托中获取 currentUser 信息。我需要在整个应用程序中访问这些信息,除了制作单例之外还有什么方法可以存储 currentUser 然后访问它?
我还将单例用于 firebaseController(用于解析来自 firebase 的数据的视图控制器,在整个应用程序中再次使用)。这是一个好主意还是更好的选择?
【问题讨论】:
标签:
ios
swift
design-patterns
singleton
【解决方案1】:
有几种方法可以避免当前用户出现单例。
您可以在应用委托中将当前用户作为类级别的 var,然后将其传递给您的视图控制器或其他需要它的类。
您可以将当前用户信息保存在 Core Data 或 NSUserDefaults 中,并在您需要的地方检索它。
我更喜欢选项 1,因为它更适合访问当前用户的单元测试代码。
在我看来,单身人士本质上并不坏。我认为当它们被用作全局变量时它们会变得很糟糕,您可以从代码中的任何位置轻松访问和访问。应该避免这种情况!但是你可以有一个你传递的单例,除非它传递给你,否则你不能访问它。