你知道有什么方法可以删除存储在 Core Data 中的所有条目吗?我的架构应该保持不变;我只想将其重置为空白。
编辑
我希望以编程方式执行此操作,以便用户基本上可以点击reset按钮。
reset
您仍然可以使用 NSFileManager:removeItemAtPath:: 方法以编程方式删除文件。
NSPersistentStore *store = ...; NSError *error; NSURL *storeURL = store.URL; NSPersistentStoreCoordinator *storeCoordinator = ...; [storeCoordinator removePersistentStore:store error:&error]; [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
然后,只需添加回持久存储以确保正确重新创建它。
遍历每个实体的编程方式既慢又容易出错。这样做的用途是如果您想删除一些实体而不是其他实体。但是,您仍然需要确保保持参照完整性,否则您将无法持久保存您的更改。
只需删除存储并重新创建它既快速又安全,当然可以在运行时以编程方式完成。
iOS5+ 更新
随着在 iOS 5 和 OS X 10.7 中引入外部二进制存储(allowsExternalBinaryDataStorage 或 Store in External Record File),仅仅删除 storeURLs 指向的文件是不够的。您将留下外部记录文件。由于这些外部记录文件的命名方案是不公开的,所以我还没有一个通用的解决方案。2012-05-08 23:00