CoreData是否提供无需数据库有效即可彻底清除数据库的API?
CoreData 损坏数据库的清除API确认
CoreData本身并没有提供无需数据库处于有效状态就能彻底清除它的官方API。
你提到的destroyPersistentStore(at:ofType:options:)方法确实依赖数据库能被正常访问——它底层要操作SQLite系统表来执行截断逻辑,所以当数据库完全损坏、连基本的迁移或初始化都做不到时,这个方法肯定失效。
官方认可的成熟方案就是直接操作文件系统,删除CoreData对应的全套SQLite相关文件(包括.sqlite、.sqlite-shm、.sqlite-wal)。毕竟当数据库彻底损坏时,CoreData的上层API已经无法和底层损坏的数据库建立有效连接,自然没法通过它完成清除操作。
内容的提问来源于stack exchange,提问作者Isaaс Weisberg
相关产品推荐
相关产品推荐

