Swift - 声明一个没有值的全局 NSDate
Swift - Declare a global NSDate without value
我想在我的应用程序中创建一个全局 NSDate,因为我想在此变量中保存应用程序第一次打开的日期。我写
"var LaunchDate = NSDate()"在第一个view controller的mainclass声明之前,在viewdidload中,如果是第一次打开app,则将日期保存到全局变量LaunchDate中。但是每次我打开应用程序时,它都会保存当前日期,因为 "var LaunchDate = NSDate()"。
我没有找到解决方案,您是否有任何想法声明一个全局日期而不是他给出当前日期?
试试这个:
override func viewDidLoad() {
var LaunchDate: NSDate
// when you want to set the value for it:
LaunchDate = NSDate()
}
问题在于,您尝试执行的 NSDate() 是一个函数,它返回当前日期的值。
您可以使用 NSUserDefaults
来存储值。
代码检查值是否存在。
如果是,它会读取值,如果不是,它会写入当前日期。
var launchDate : NSDate!
let defaults = NSUserDefaults.standardUserDefaults()
if let dateOfFirstLaunch = defaults.objectForKey("dateOfFirstLaunch") as? NSDate {
launchDate = dateOfFirstLaunch
} else {
let currentDate = NSDate()
defaults.setObject(currentDate, forKey:"dateOfFirstLaunch")
launchDate = currentDate
}
Global variables are variables that are defined outside of any
function, method, closure, or type context
struct globalDate
{
static var LaunchDate = NSDate()
}
在 swift 中,如果将变量封装在结构中,则可以在任何 类 中访问它。
Global Variable
我会在 NSUserDefaults
中使用单例模式。
代码应该是这样的
import Foundation
class UserDefaults {
static let sharedInstance = UserDefaults()
var launchDate: NSDate? {
get {
return NSUserDefaults.standardUserDefaults().objectForKey("launch_date") as? NSDate
}
set {
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "launch_date")
}
}
}
使用此代码访问它
UserDefaults.sharedInstance.launchDate
我想在我的应用程序中创建一个全局 NSDate,因为我想在此变量中保存应用程序第一次打开的日期。我写 "var LaunchDate = NSDate()"在第一个view controller的mainclass声明之前,在viewdidload中,如果是第一次打开app,则将日期保存到全局变量LaunchDate中。但是每次我打开应用程序时,它都会保存当前日期,因为 "var LaunchDate = NSDate()"。 我没有找到解决方案,您是否有任何想法声明一个全局日期而不是他给出当前日期?
试试这个:
override func viewDidLoad() {
var LaunchDate: NSDate
// when you want to set the value for it:
LaunchDate = NSDate()
}
问题在于,您尝试执行的 NSDate() 是一个函数,它返回当前日期的值。
您可以使用 NSUserDefaults
来存储值。
代码检查值是否存在。
如果是,它会读取值,如果不是,它会写入当前日期。
var launchDate : NSDate!
let defaults = NSUserDefaults.standardUserDefaults()
if let dateOfFirstLaunch = defaults.objectForKey("dateOfFirstLaunch") as? NSDate {
launchDate = dateOfFirstLaunch
} else {
let currentDate = NSDate()
defaults.setObject(currentDate, forKey:"dateOfFirstLaunch")
launchDate = currentDate
}
Global variables are variables that are defined outside of any function, method, closure, or type context
struct globalDate
{
static var LaunchDate = NSDate()
}
在 swift 中,如果将变量封装在结构中,则可以在任何 类 中访问它。
Global Variable
我会在 NSUserDefaults
中使用单例模式。
代码应该是这样的
import Foundation
class UserDefaults {
static let sharedInstance = UserDefaults()
var launchDate: NSDate? {
get {
return NSUserDefaults.standardUserDefaults().objectForKey("launch_date") as? NSDate
}
set {
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "launch_date")
}
}
}
使用此代码访问它
UserDefaults.sharedInstance.launchDate