删除 isLeapMonth: false

Remove isLeapMonth: false

下面的代码应该 return 自单元格创建以来的天数,确实如此,但它也 returns isLeapMonth: false。这是为什么?我怎样才能删除它?

let cell = super.tableView(tableView, cellForRowAt: indexPath)
cell.textLabel?.text = itemArray[indexPath.row].title
let startDate = itemArray[indexPath.row].dateCreated
let currentDate = Date()
let components = Set<Calendar.Component>([.day])
let differenceOfDate = Calendar.current.dateComponents(components, from: startDate!, to: currentDate)
cell.detailTextLabel?.text = "\(differenceOfDate)"
return cell

这是因为 differenceOfDateDateComponents 类型,而这 return 不是一个数字。如果需要获取天数,可以通过获取 day 属性 of DateComponents

来获取此数字
Calendar.current.dateComponents(components, from: startDate!, to: currentDate).day!

由于您只需要天数,因此您应该只从结果 DateComponents 中提取 day 值并根据需要打印该数字。

cell.detailTextLabel?.text = "\(differenceOfDate.day!) days"

请注意,在这里使用 ! 是安全的,因为您特别请求了 .day 组件。