您知道有什么方法可以删除存储在核心数据中的所有条目吗?我的架构应该保持不变;我只是想将其重置为空白。
Edit
我希望以编程方式执行此操作,以便用户基本上可以点击reset
button.
您仍然可以使用 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 中引入外部二进制存储(允许外部二进制数据存储或存储在外部记录文件中),仅仅删除 storeURL 指向的文件是不够的。您将留下外部记录文件。由于这些外部记录文件的命名方案不是公开的,所以我还没有通用的解决方案。 – an0 2012 年 5 月 8 日 23:00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)