在应用程序中,当用户点击作业完成时,我会收集时间戳供以后使用。 这样我就可以在另一个视图中显示作业何时完成。
我遇到的问题是,当用户点击作业完成后,变量不会改变。
以下是打印出来时数据结构的样子:
Moneypants.Points(user: "Father", itemName: "enter your top priority habit here", itemCategory: "daily habits", code: "C", valuePerTap: 24, itemDate: 1511579837.027503),
Moneypants.Points(user: "Father", itemName: "pray & scripture study", itemCategory: "daily habits", code: "C", valuePerTap: 6, itemDate: 1511579837.027503),
Moneypants.Points(user: "Father", itemName: "exercise (20 min)", itemCategory: "daily habits", code: "C", valuePerTap: 6, itemDate: 1511579837.027503),
Moneypants.Points(user: "Father", itemName: "journal", itemCategory: "daily habits", code: "C", valuePerTap: 6, itemDate: 1511579837.027503),
Moneypants.Points(user: "Father", itemName: "1-on-1 time with kid", itemCategory: "daily habits", code: "C", valuePerTap: 6, itemDate: 1511579837.027503)
正如您所看到的,每个项目的时间戳是相同的(它们各自显示时间戳“1511579837.027503”),尽管事实上我在几秒钟内分别敲击每个项目。
CODE
class UserVC: UIViewController {
var selectedDate: Date!
override func viewDidLoad() {
super.viewDidLoad()
selectedDate = Date()
当用户点击单元格以标记作业完成时,这是运行的代码:
let pointsArrayItem = Points(user: currentUserName,
itemName: (usersDailyJobs?[indexPath.row].name)!,
itemCategory: "daily jobs",
code: "C",
valuePerTap: dailyJobsPointValue,
itemDate: (selectedDate?.timeIntervalSince1970)!)
Points.pointsArray.append(pointsArrayItem)
我认为这很简单,但我无法理解。
答案 0 :(得分:0)
我最终为日期创建了一个新变量,以便我可以“刷新”selectedDate
变量。现在我的类有一个变量var selectedDateNumber
,然后在ViewDidLoad
方法中设置一个默认值。
class UserVC: UIViewController {
...
var selectedDateNumber: Int!
}
override func viewDidLoad() {
super.viewDidLoad()
selectedDateNumber = 0
}
然后,当我需要使用当前日期/时间戳“刷新”它时,我在各种函数中使用此代码:
selectedDate = Calendar.current.date(byAdding: .day, value: selectedDateNumber, to: Date())
通过这种方式刷新数据,我可以获得项目的当前时间戳,包括前几天的时间戳。