Iphone 其中是应用程序';s的核心数据sqlite数据库文件位于哪里?
我想写一个方法来删除我的应用程序的核心数据存储,然后创建一个新的存储。是否有一种标准的方法来执行此操作,以及数据库在我的应用程序的沙箱中的位置?您(可能无意中)已经告诉了它去哪里。在Apple的模板代码中,ApplicationLegate会在应用程序的Documents文件夹中自动创建此存储。请查看应用程序Legate中的Iphone 其中是应用程序';s的核心数据sqlite数据库文件位于哪里?,iphone,sqlite,core-data,Iphone,Sqlite,Core Data,我想写一个方法来删除我的应用程序的核心数据存储,然后创建一个新的存储。是否有一种标准的方法来执行此操作,以及数据库在我的应用程序的沙箱中的位置?您(可能无意中)已经告诉了它去哪里。在Apple的模板代码中,ApplicationLegate会在应用程序的Documents文件夹中自动创建此存储。请查看应用程序Legate中的-(NSPersistentStoreCoordinator*)persistentStoreCoordinator方法。您(可能无意中)已经告诉了它要去哪里。在Apple的
-(NSPersistentStoreCoordinator*)persistentStoreCoordinator
方法。您(可能无意中)已经告诉了它要去哪里。在Apple的模板代码中,ApplicationLegate会在应用程序的Documents文件夹中自动创建此存储。查看应用程序Legate中的-(NSPersistentStoreCoordinator*)persistentStoreCoordinator
方法。听起来删除文件就足够了,将persistentStoreCoordinator
设置为nil
并运行应用程序委托的persistentStoreCoordinator
方法。这听起来对吗?我已经试过了,但效果不太好。通过释放您的persistentStoreCoordinator
,可以使托管对象上下文的链接无效。而且环境不适合接受新的协调员。您可以创建一个全新的上下文,但所有这些连接都会断开。我肯定有办法做到这一点,但经过一段时间的摸索之后,我放弃了,只是简单地迭代了我所有的实体,删除了每一个。我不认为我可以迭代所有的东西,因为可能有数千条记录。其他人有什么想法吗?有一件事我没有尝试过,可能值得一试:删除持久性存储(使用removePersistentStore:error:
),然后删除文件,然后再次添加持久性存储。请参阅:听起来删除文件就足够了,将persistentstorecordinator
设置为nil
并运行应用程序代理的persistentstorecordinator
方法。这听起来对吗?我已经试过了,但效果不太好。通过释放您的persistentStoreCoordinator
,可以使托管对象上下文的链接无效。而且环境不适合接受新的协调员。您可以创建一个全新的上下文,但所有这些连接都会断开。我肯定有办法做到这一点,但经过一段时间的摸索之后,我放弃了,只是简单地迭代了我所有的实体,删除了每一个。我不认为我可以迭代所有的东西,因为可能有数千条记录。其他人有什么想法吗?有一件事我没有尝试过,可能值得一试:删除持久性存储(使用removePersistentStore:error:
),然后删除文件,然后再次添加持久性存储。见: