我在iphone应用程序中删除/重置核心数据数据库时遇到问题,通常是在我调用以下内容时:
[self.persistentStoreCoordinator removePersistentStore:persistentStore error:&localError];
或
[self.managedObjectStore resetPersistentStores:] // Restkit
我可以在应用程序第一次启动时调用它,但似乎每当我将数据加载到tableview中时,应用程序将在尝试删除持久存储时挂起。这是重置核心数据库的正确方法吗?
谢谢!
答案 0 :(得分:3)
对于初学者,您需要reset
所有NSManagedObjectContext
,否则上下文可能会有孤立的对象,这会导致错误。
然后,我总是直接从文件系统中删除sqlite文件并将managedObjectContext
和persistentStoreCoordinator
设置为nil(这样它将重建上下文并在下次访问时从头开始存储)而不是调用{ {1}}。但对于这部分,我不确定哪种方式更合适。