清除核心数据

时间:2011-06-26 09:52:55

标签: iphone objective-c core-data

我指的是以下问题:Delete/Reset all entries in Core Data?

有时在启动时,我想清除我的Core-Data数据库并重新下载它。我刚开始使用Core Data,所以我是Core Data的初学者。

1)答案显示:

NSPersistentStore *store = ...;

我如何获得NSPersistentStore? My App Delegate不引用NSPersistentStore,仅引用NSStorePersistentCoordinator。

2)我运行以下(在答案中)后我应该重建堆栈吗?

NSPersistentStore *store = ...;
NSError *error;
NSURL *storeURL = store.URL;
NSPersistentStoreCoordinator *storeCoordinator = ...;
[storeCoordinator removePersistentStore:store error:&error];
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];

如果是这样,我该如何重建堆栈?我可以只调用一个函数吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

为什么要使用NSPersistentStore?仅仅是因为那篇文章?如果是,那么我建议你使用`NSManagedObject。您只需通过获取请求删除所有核心数据,然后在其上进行for循环。它的旧approch但它易于理解为初学者。这可能会对您有所帮助:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = 
[NSEntityDescription entityForName:entityDescription inManagedObjectContext:managedObjectContext];

[fetchRequest setEntity:entity];

NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];


for (NSManagedObject *managedObject in items) {
    [managedObjectContext deleteObject:managedObject];

}
if (![managedObjectContext save:&error]) {

}

快乐编码..!