您知道删除Core Data中存储的所有条目的方法吗?我的架构应该保持不变; 我只是想把它重置为空白.
编辑
我希望以编程方式执行此操作,以便用户可以实际按下reset按钮.
我正在编写一个Ipad应用程序,它在一个队列中的单独NSOperation中显示文章并下载新文章,并将它们插入到核心数据中.目前,我有一个单独的操作上下文,在操作的主方法中创建,并使用相同的协调器作为主上下文.我在NSManagedObjectContextDidSaveNotification的操作中使用了相同的模式,然后在主线程上下文中调用mergeChangesFromContextDidSaveNotification.问题是我收到了这个错误:
2011-01-27 07:26:02.574 Zagazine[12298:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Object's persistent store is not reachable from this NSManagedObjectContext's coordinator'
*** Call stack at first throw:
(
0 CoreFoundation 0x3284b987 __exceptionPreprocess + 114
1 libobjc.A.dylib 0x31aca49d objc_exception_throw + 24
2 CoreData 0x3549d07b _PFRetainedObjectIDCore + 638
3 CoreData 0x3549cdfb - [NSManagedObjectContext(_NSInternalAdditions) _retainedObjectWithID:] + 14
4 CoreData 0x354bf85b -[NSManagedObjectContext mergeChangesFromContextDidSaveNotification:] + 2170
5 CoreFoundation 0x327e9bbf -[NSObject(NSObject) performSelector:withObject:] + 22
6 Foundation 0x320fd795 __NSThreadPerformPerform + 268
7 CoreFoundation 0x328017dd __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ …Run Code Online (Sandbox Code Playgroud) 我正在使用coreData,具有一对多的实现,我有一个文件夹实体和一个文件实体.文件夹可以包含许多文件,依此类推.
所以,我有两个ViewControllers,FolderViewController和FileViewController,它们分别包含文件夹和文件.现在我有一个modalView,可以从文件夹和文件viewcontroller访问.在这个VC中,我有一个重置所有数据的按钮.所以,当我点击这个时,我想要重置所有数据.
我使用了这段代码,这个函数是用appdelegate.m编写的,并从我的VC中调用.
- (void)resetToDefault
{
NSError * error;
// retrieve the store URL
NSURL * storeURL = [[__managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]];
// lock the current context
[__managedObjectContext lock];
[__managedObjectContext reset];//to drop pending changes
//delete the store from the current managedObjectContext
if ([[__managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error])
{
// remove the file containing the data
[[NSFileManager defaultManager] removeItemAtURL:storeURL error:&error];
//recreate the store like in the appDelegate method
[[__managedObjectContext persistentStoreCoordinator] addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];//recreates the persistent …Run Code Online (Sandbox Code Playgroud)