首页 > 解决方案 > 如何保存标签内容

问题描述

在我的 TodoList 中,我有一个标签,当在 Todo 中添加某些内容时,会显示当天的日期。

我怎样才能保存它?因为当我打开我的应用程序时,我总是知道打开它的日期和时间。

这是带有日期的标签的代码:

class TableViewCell: UITableViewCell {

    @IBOutlet weak var Data: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        Data.text = String(describing: DateFormatter())

        UserDefaults.standard.string(forKey: "Data")

        let dataFormatter = DateFormatter()
        dataFormatter.dateFormat = "dd/MM/yyyy H:mm a"
        Data.text = dataFormatter.string(from: .init())

    }
}

标签: swiftdatabasesavelabel

解决方案


将代码setSelected移到awakeFromNib

我也希望这UserDefaults.standard.string(forKey: "Data")能返回一个值,所以 someWhere 你应该有UserDefaults.standard.set(value:"----Any value", forKey: "Data")

 guard let res =  UserDefaults.standard.object(forKey: "Data")  as? Date else { return }
 let dataFormatter = DateFormatter()
 dataFormatter.dateFormat = "dd/MM/yyyy H:mm a"
 Data.text = dataFormatter.string(from:res)

对于塞特

 UserDefaults.standard.set(Date(), forKey: "Data")

@IBOutlet weak var Data: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
    UserDefaults.standard.set(Date(), forKey: "Data") // this line need to be placed where you need to store the date
    guard let storedDate = UserDefaults.standard.object(forKey: "Data") as? Date  else { return } // here you read the stored date
    let dataFormatter = DateFormatter()
    dataFormatter.dateFormat = "dd/MM/yy H:mm a"
    Data.text = dataFormatter.string(from:storedDate)

}

推荐阅读