如何在Swift中的许多ViewControllers之间共享数据

时间:2015-04-06 12:20:05

标签: ios swift uiviewcontroller

我是Swift的新手

我想知道无论如何在swift中存储一些可以被许多ViewControllers访问而不是使用Segues或委托的数据。

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

2 个答案:

答案 0 :(得分:1)

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

如果您希望数据是瞬态的,那么最好有一个简单的单例模型类。一个简单的Swift类,用于保存可由许多View控制器访问的数据。

答案 1 :(得分:1)

有很多方法可以在NSUserDefaultsCoreData等视图控制器与plist之间共享数据:

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