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

Ios 如何在Swift中的多个ViewController之间共享数据,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我不熟悉斯威夫特 我想知道swift中是否有存储一些数据的功能,这些数据可以被许多ViewController访问,而不是使用Segue或Delegate 就像我们将一些数据存储到数据库中,然后方便地访问它们一样如果数据很小并且需要跨应用程序调用,则可以使用NSUserDefaults 如果您希望数据是瞬态的,那么最好有一个简单的单例模型类。一个简单的Swift类,用于保存可由多个视图控制器访问的数据。在视图控制器之间共享数据的方法有很多,如NSUserDefaults,CoreData,使用p

我不熟悉斯威夫特

我想知道swift中是否有存储一些数据的功能,这些数据可以被许多ViewController访问,而不是使用Segue或Delegate


就像我们将一些数据存储到数据库中,然后方便地访问它们一样

如果数据很小并且需要跨应用程序调用,则可以使用NSUserDefaults


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

在视图控制器之间共享数据的方法有很多,如
NSUserDefaults
CoreData
,使用
plist

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

  • 您可以使用
    NSUserDefaults
    。存储字符串等小数据,所有数据都使用密钥,您可以在整个应用程序中访问这些数据。为什么不想使用segues或Delegate?这些可能是在
    UIViewController
    s之间共享数据的最佳方式,因为这样可以很容易地重用这些视图控制器。我实际上想创建一个会话来存储用户信息,如用户名、联系方式、,ID和密码,这样我就可以在任何需要的地方访问它,只要用户关闭应用程序,它就可以被终止