将数据存储到 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.
希望对您有所帮助!
所以我目前正在做我的第一个更大的项目,我想知道是否有某种方法可以将数据放入一个 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.
希望对您有所帮助!