我尝试使用UILabel
显示时间/日期(日期或NSDate),并在启动应用程序时使用以前每次启动的DateFormatter
进行格式化。
因此,每次我启动该应用程序时,屏幕上都会显示另一个日期。
例如,如果这是第一次启动,它将显示Nov 18 2018, 13:15
。第二次启动应显示
Nov 18 2018, 13:15
Nov 18 2018, 13:16
它的第三次启动应该显示类似
Nov 18 2018, 13:15
Nov 18 2018, 13:16
Nov 18 2018, 13:17
当前,我的代码仅显示启动时间,但不记录以前的启动。如果有人能给我一些指导,说明如何使用UserDefaults
来实现这一目标,我将不胜感激!
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var Timelabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd, yyyy HH:mm:ss"
let DisplayTime: Date = Date()
print(dateFormatterPrint.string(from: DisplayTime))
Timelabel.text = "Current Time: \(dateFormatterPrint.string(from: DisplayTime))"
}
}
答案 0 :(得分:0)
按以下方式使用
class ViewController: UIViewController {
// your other @IBOutlet / properties
let ARR_KEY = "launch_time"
override func viewDidLoad() {
// your other code.
// remove your TimeLabel.text = ... line
let formattedDateTime = dateFormatterPrint.string(from: DisplayTime)
// storing the launch date time
if var arr = UserDefaults.standard.stringArray(forKey: ARR_KEY){
arr.append(formattedDateTime)
UserDefaults.standard.set(arr, forKey: ARR_KEY)
} else {
UserDefaults.standard.set([formattedDateTime], forKey: ARR_KEY)
}
displayLaunchTimeInSimpleLabel()
}
func displayLaunchTimeInSimpleLabel() {
if var arr = UserDefaults.standard.stringArray(forKey: ARR_KEY){
var string = ""
for launchTime in arr {
string = string + launchTime + "\n"
}
Timelabel.text = string
}
}
}