gpt4 book ai didi

ios - 如何使用 NSUserDefaults 和 NSDateComponent 来存储?

转载 作者:行者123 更新时间:2023-11-28 08:38:37 24 4
gpt4 key购买 nike

我需要做以下事情,我需要你的帮助:

  1. 创建一个文本字段供用户输入日期。当用户在安装后第一次打开应用程序时会发生这种情况。
  2. 将它与当前日期进行比较
  3. 显示差异。
  4. 存储差异,以便在后续加载 App 时显示加载的差异。

我的代码是这样的(稍后我会将常量更改为从 UITextField 输入)

let currentDate = NSDate()

let dataformatterCurrent = NSDateFormatter()

dataformatterCurrent.dateFormat = "MMMM dd, yyyy, HH:mm"

let convertedCurrentDate = dataformatterCurrent.stringFromDate(currentDate)

let dateformatter = NSDateFormatter()

dateformatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

let dateAskumar = "2015-10-08 14:25:37"

let date1 = dateformatter.dateFromString(dateAskumar)!

let diffDateComponents = NSCalendar.currentCalendar().components([NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute], fromDate: date1, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 1))

请帮助如何使用 NSUserDefaults 保存 diffDateComponents 变量。

最佳答案

将日期组件放入字典中,并将其存储在 NSUserDefaults 中。

例子:

let currentDate = NSDate()
let unitFlags: NSCalendarUnit = [.Month, .Day, .Hour, .Minute]
let components = NSCalendar.currentCalendar().components(unitFlags, fromDate: date1, toDate: currentDate, options: [])
let difference = ["months": components.month, "days": components.day, "hours": components.hour, "minutes": components.minute ]
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(difference, forKey: "difference")

这样你就不需要处理日期的字符串表示。当然,正如@rmaddy 指出的那样,如果您总是将它与当前日期进行比较,您可以只存储和检索另一个日期。

更新:我知道这不会存储整个 NSDateComponents,所以如果您需要它,您必须实现 NSCoding。但如果您只对其中的几个组件感兴趣,这对您来说可能就足够了。

关于ios - 如何使用 NSUserDefaults 和 NSDateComponent 来存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com