在 Swift 中将变量从前景传递到背景
Pass a variable from foreground to background in Swift
我正在开发一个 iOS 应用程序,我想在其中记录用户按下特定按钮的时间并保留它。后面我会在后台使用这个时间记录。有没有不调用 NSUserDefaults 或 CoreData 或任何其他数据库的好方法?
我对 iOS 开发还很陌生。我认为这很可能是一个幼稚的问题。但我只是好奇。请不要笑我哈哈
编辑:这确实是一个很幼稚的问题哈哈。
确保您的数据在您的应用程序中随处可用并且仅在每个应用程序会话中持续存在的一种简单方法是使用单例。 类似这样。
// Create a class to store the data
class SessionData : NSObject {
// Create a shared instance of your class
static let sharedInstance = SessionData()
// Create a variable to store the date object
var timeStore:NSDate?
}
这意味着您可以在应用程序的任何位置 get
和 set
此数据 ,如下所示。
// Get
if let time = SessionData.sharedInstance.timeStore {
println(time)
}
// Set
SessionData.sharedInstance.timeStore = NSDate()
值得一提的是,尽管上述方法有效,但您可以通过重新考虑您的应用程序结构并在 类 之间传递数据来避免这样做。 你应该看看 Delegation.
此外,@CouchDeveloper 在下面的评论中提到,您可能希望包含一个调度队列,以防止在两个或多个 类 尝试读取和/或的情况下发生崩溃或锁定同时写入数据。
我正在开发一个 iOS 应用程序,我想在其中记录用户按下特定按钮的时间并保留它。后面我会在后台使用这个时间记录。有没有不调用 NSUserDefaults 或 CoreData 或任何其他数据库的好方法?
我对 iOS 开发还很陌生。我认为这很可能是一个幼稚的问题。但我只是好奇。请不要笑我哈哈
编辑:这确实是一个很幼稚的问题哈哈。
确保您的数据在您的应用程序中随处可用并且仅在每个应用程序会话中持续存在的一种简单方法是使用单例。 类似这样。
// Create a class to store the data
class SessionData : NSObject {
// Create a shared instance of your class
static let sharedInstance = SessionData()
// Create a variable to store the date object
var timeStore:NSDate?
}
这意味着您可以在应用程序的任何位置 get
和 set
此数据 ,如下所示。
// Get
if let time = SessionData.sharedInstance.timeStore {
println(time)
}
// Set
SessionData.sharedInstance.timeStore = NSDate()
值得一提的是,尽管上述方法有效,但您可以通过重新考虑您的应用程序结构并在 类 之间传递数据来避免这样做。 你应该看看 Delegation.
此外,@CouchDeveloper 在下面的评论中提到,您可能希望包含一个调度队列,以防止在两个或多个 类 尝试读取和/或的情况下发生崩溃或锁定同时写入数据。