Swift 如何在多个 ViewController 之间共享数据

how to share data between many ViewControllers in Swift

我是 Swift

的新手

我想知道 swift 中是否存在用于存储一些可以被许多 ViewController 访问的数据,而不是使用 Segues 或委托。

就像我们将一些数据存储到数据库中,以后可以轻松访问它们

如果数据很小并且您希望跨应用程序调用使用它,您可以使用 NSUserDefaults。

如果您希望您的数据是瞬态的,那么拥有一个简单的单例模型是个好主意class。一个简单的 Swift class 保存您的数据,可以被许多视图控制器访问。

有很多方法可以在视图控制器之间共享数据,例如 NSUserDefaultsCoreDataplist:

  1. NSUserDefaults:NSUserDefaults class 的行为非常类似于称为 属性 列表(又名 plist)的东西。它可能只是一个 plist 的奇特界面,或者它可能更多,我不完全确定。尽管如此,plist 在它们可以存储的对象类型方面是有限的。更多信息 HERE.
  2. CoreData: Core Data 堆栈由一组对象组成,这些对象有助于从 Core Data 中保存和检索信息。有一个对象将 Core Data 状态作为一个整体来管理,一个对象代表数据模型,等等。更多信息 HERE.
  3. plist: 属性 列表是一种构造任意数据并在运行时访问它的方法。信息 属性 列表是一种特殊类型的 属性 列表,其中包含捆绑包的配置数据。文件中的键和值描述了您想要应用于您的包的各种行为和配置选项。 Xcode 通常会为任何基于捆绑包的项目自动创建一个信息 属性 列表文件,并使用适当的默认值配置一组初始键和值。但是,您可以编辑该文件以添加适合您的项目的任何键和值,或更改现有 keys.More Info HERE.
  4. 的默认值