【问题标题】:Delete all entries [duplicate]删除所有条目[重复]
【发布时间】:2018-10-16 08:36:11
【问题描述】:

我一直在谷歌搜索和 stackoverflow'in 但我找不到 Swift4 的解决方案。我正在尝试删除我的核心数据数据库中的所有条目。

这是我的代码

//Whats important
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
let managedContext = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Day", in: managedContext)!


//How i use it (might be completely unnecessary, just in case)
let fetchDay = NSFetchRequest<NSFetchRequestResult>(entityName: "Day")
fetchDay.fetchLimit = 1
let currentDay = try! managedContext.fetch(fetchDay)

let today: Day = currentDay.first as! Day
print("Date: \(today.date!)")
print("Completed: \(today.completed)")

不,我的问题不同。我将编辑解释如何。

委托和上下文变量使用 swift4 中不可用的函数

【问题讨论】:

  • @rbaldwin 第一个链接,第二个答案,委托和上下文变量使用 swift4 中不可用的函数。第二个链接是我的
  • 你要删除哪个函数并且不在swift4中?

标签: swift core-data swift4


【解决方案1】:

您可以通过多种方式删除所有条目:

第一

// Initialize Fetch Request
let fetchRequest = NSFetchRequest(entityName: "Item")

// Configure Fetch Request
fetchRequest.includesPropertyValues = false

do {
    let items = try managedObjectContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]

    for item in items {
        managedObjectContext.deleteObject(item)
    }

    // Save Changes
    try managedObjectContext.save()

} catch {
    // Error Handling
    // ...
}

第二次:批量删除请求:-

// Create Fetch Request
let fetchRequest = NSFetchRequest(entityName: "Item")

// Create Batch Delete Request
let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest)

do {
    try managedObjectContext.executeRequest(batchDeleteRequest)

} catch {
    // Error Handling
}

第三次:删除持久存储:-

do {
    try persistentStoreCoordinator.destroyPersistentStoreAtURL(persistentStoreURL, withType: NSSQLiteStoreType, options: nil)

} catch {
    // Error Handling
}

您可以从以下地址找到更多信息:https://cocoacasts.com/how-to-delete-every-record-of-a-core-data-entity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    相关资源
    最近更新 更多