删除所有条目

5 浏览
0 Comments

删除所有条目

我已经在谷歌和stackoverflow上搜索过,但是我找不到Swift4的解决方案。我正在尝试删除我核心数据数据库中的所有条目。

这是我的代码:

//重要的部分

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }

let managedContext = appDelegate.persistentContainer.viewContext

let entity = NSEntityDescription.entity(forEntityName: "Day", in: managedContext)!

//我如何使用它(可能完全不必要,以防万一)

let fetchDay = NSFetchRequest(entityName: "Day")

fetchDay.fetchLimit = 1

let currentDay = try! managedContext.fetch(fetchDay)

let today: Day = currentDay.first as! Day

print("日期:\(today.date!)")

print("完成:\(today.completed)")

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

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

0
0 Comments

最近,你需要删除所有条目的问题出现了。这可能是因为数据表中的所有条目需要被清空。下面有三种方法可以解决这个问题。

第一种方法是使用Core Data的FetchRequest来删除所有条目。首先,你需要初始化FetchRequest,并指定要删除的实体名称。然后,将includesPropertyValues属性设置为false,以便在删除之前不加载属性值。接下来,使用managedObjectContext的executeFetchRequest方法执行FetchRequest,并将结果转换为NSManagedObject数组。然后,使用for循环遍历所有的NSManagedObject对象,并使用managedObjectContext的deleteObject方法来删除每个对象。最后,使用managedObjectContext的save方法保存更改。

第二种方法是使用Batch Delete Request来删除所有条目。首先,创建一个FetchRequest,并指定要删除的实体名称。然后,创建一个Batch Delete Request,并将FetchRequest传递给它。最后,使用managedObjectContext的executeRequest方法执行Batch Delete Request。

第三种方法是删除持久存储。首先,使用persistentStoreCoordinator的destroyPersistentStoreAtURL方法来删除持久存储。你需要指定存储的URL、存储的类型和选项。最后,使用错误处理来处理可能出现的错误。

你可以参考这个链接(https://cocoacasts.com/how-to-delete-every-record-of-a-core-data-entity)了解更多信息。

0