Swift 将数据存储到类中

Swift 将数据存储到类中,swift,storing-data,swift-data,Swift,Storing Data,Swift Data,因此,我目前正在进行我的第一个更大的项目,我想知道是否有某种方法可以将数据放入一个类中,然后重写它们或为该类创建一个实例。我在第一个ViewController中下载了一个数据,如果我想在所有5个ViewController上使用它们,我只需使用代理传递它们,并制作大量副本。由于这种方法效率很低,而且很凌乱,所以我希望将它们存储在一个类中。当我为这些数据创建自定义类时,当更改为另一个ViewController时,数据会立即被删除。 任何建议都将不胜感激!:) 您可以使用多个选项从多个位置访问同

因此,我目前正在进行我的第一个更大的项目,我想知道是否有某种方法可以将数据放入一个类中,然后重写它们或为该类创建一个实例。我在第一个ViewController中下载了一个数据,如果我想在所有5个ViewController上使用它们,我只需使用代理传递它们,并制作大量副本。由于这种方法效率很低,而且很凌乱,所以我希望将它们存储在一个类中。当我为这些数据创建自定义类时,当更改为另一个ViewController时,数据会立即被删除。
任何建议都将不胜感激!:)

您可以使用多个选项从多个位置访问同一条数据。你使用的方式完全取决于你的需要。以下是一些选项:

  • 依赖注入:这是一篇关于它的好文章。这是在一个VC中有一些数据并将其注入到下一个VC中。如果不需要持久化数据和其他对象依赖于它,那么这是一种很好的方法

  • 委派:你可以让VC在某些事情发生后将数据传递给它的委派(比如用户点击,你完成了一些数据的下载等)

  • :您可以在应用程序范围内发送通知,并让任何对象(如ViewController)观察特定通知。您可以随通知一起发送数据

  • 设计模式:您可以像这样在Swift中使用单例:

classmysingleton{
静态let shared=MySingleton()
var name=“”
}
//在某处分配名称变量(即下载数据后的第一个VC中)
MySingleton.shared.name=“Bob”
//在其他一些ViewController中
myLabel.text=MySingleton.shared.name
  • :这是一种可用于存储小块数据的存储器。请记住,这不是一个数据库,它将在应用程序启动之间保存您的数据,但您不应使用它存储大量数据

  • :这是一个用于iOS存储数据的持久性框架,就像在服务器端数据库中一样。它不完全是一个DB,因为每次读/写时您都不会直接访问磁盘,CoreData会将其所有内容加载到内存中以访问它。您还有其他第三方库与本地持久性一起工作,如


希望有帮助

singleton设计模式按照我希望的方式工作。非常感谢。