如何在同一天保存 CoreData 对象?

How can I save CoreData object on the same day?

有没有办法在同一天保存多个 CoreData 对象?

let newitem = Record(context: viewContext)
newitem.date = Date()
newitem.totaltime = item.totaltime

并在下一次的同一个 Date()

totaltime += 200

我用过这个,但是没用

if !ro.filter({[=12=].date == Date()}).isEmpty{
}else{
}

据我所知,在 .filter{} 方法中,仅按 Date() 进行过滤是行不通的。

看下面的例子,

let now = Date()
var delayedDate: Date!

// Causing a delay of 1 second
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
    delayedDate = Date() // Date after one second
    print("Date now:", now, ", Delayed date:", delayedDate!) // Printing the dates. See that they are not equal
    print(now == delayedDate) // Checking if the dates are equal will result in false
}

这将导致以下结果

这意味着您正在比较的日期对象与来自 CoreData 的日期对象不相等。您可以说您正在尝试将 完全不同的对象等同起来 .

所以您可以做的是,使用 this link 中的解决方案将 Date() 对象分解为 datehour 等组件、minute 等,然后将 date 组件与来自 CoreData 的组件进行比较。请注意,还需要为 CoreData 日期完成组件转换