将数据存储到 class

Storing data into class

所以我目前正在做我的第一个更大的项目,我想知道是否有某种方法可以将数据放入一个 class 然后重写它们或为 class 创建一个实例.我有一个数据正在第一个 ViewController 中下载,如果我想在我的所有 5 ViewController 中使用它们,我只需使用委托传递它们并制作很多副本。由于这种方式非常低效且混乱,我想将它们存储在一个 class 中。当我为这些数据定制 class 时,当更改为另一个 ViewController 时,数据会立即被删除。 任何建议将被认真考虑! :)

您有多种选择可以从多个位置访问同一数据。您使用的方式完全取决于您的需要。这里有几个选项:

  • 依赖注入Here 很好post。这是在一个 VC 中包含一些数据并将其注入下一个。如果您不需要保留数据并且其他对象依赖于它,这是一个很好的方法。

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

  • Notification Center:您可以在应用程序范围内发送通知并制作任何对象(如ViewController)以观察具体通知。您可以发送数据和通知。

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

class MySingleton {
  static let shared = MySingleton()

  var name = ""
}

// Assign name variable somewhere (i.e. in your first VC after downloading data)
MySingleton.shared.name = "Bob"

// In some other ViewController
myLabel.text = MySingleton.shared.name
  • UserDefaults:这是一个可以用来存储小块数据的存储。请记住,这不是数据库,它会在应用程序启动之间保留您的数据,但您不应该使用它来存储大量数据。

  • CoreData: This is a a persistence framework for iOS to store data, like you would do in a server-side DB. It's not exactly a DB, because you don't access disk directly each time you read/write, CoreData loads all its content to memory to access it. You have other third party libraries to work with local persistency, like Realm.

希望对您有所帮助!