删除isLeapMonth:否

时间:2018-12-08 23:02:48

标签: swift nsdatecomponents

以下代码应该返回自创建单元以来的天数,但是它还返回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

Image

2 个答案:

答案 0 :(得分:1)

这是因为differenceOfDate的类型为DateComponents,并且不会返回数字。如果需要获取天数,则可以通过获取day的{​​{1}}属性来获得此数字

DateComponents

答案 1 :(得分:0)

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

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

请注意,此处使用!是安全的,因为您特别要求使用.day组件。