gpt4 book ai didi

swift - NSBatchDeleteRequest 与 NSPredicate swift

转载 作者:可可西里 更新时间:2023-11-01 00:36:13 28 4
gpt4 key购买 nike

如何使用带有 NSPredicate 的 NSBatchDeleteRequest 从 CoreData 中删除行。

我想删除超过 30 天的记录。

我不想获取内存中的所有数据,而是比较和删除,我想使用 NSBatchDeleteRequest,就像我们在 NSBatchUpdateRequest 中所做的那样。

这是我目前编写的代码

let date = NSDate(); let yesterday = date.dateByAddingTimeInterval(-24*60*60); let predicate = NSPredicate(format: "date > %@", yesterday);
let fetchRequest = NSFetchRequest(entityName: "Notification");
let batchDelete = NSBatchDeleteRequest(fetchRequest: fetchRequest)

请 swift 给出答案

最佳答案

这是一个简单的例子。可以使用 NSPredicate 来过滤您的请求。

let calendar = NSCalendar.currentCalendar()

let thirtyDaysAgo = calendar.dateByAddingUnit(.Day, value: -30, toDate: NSDate(), options: [])

let fetchRequest = NSFetchRequest(entityName: "Notification")

fetchRequest.predicate = NSPredicate(format: "(date >= %@)", thirtyDaysAgo)

let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest)

do {
try context.executeRequest(deleteRequest)
try context.save()
} catch {
print (error)
}

关于swift - NSBatchDeleteRequest 与 NSPredicate swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638492/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com