如何在同一天保存 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()
对象分解为 date
、hour
等组件、minute
等,然后将 date
组件与来自 CoreData 的组件进行比较。请注意,还需要为 CoreData 日期完成组件转换
有没有办法在同一天保存多个 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()
对象分解为 date
、hour
等组件、minute
等,然后将 date
组件与来自 CoreData 的组件进行比较。请注意,还需要为 CoreData 日期完成组件转换