我指的是以下问题: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];
如果是这样,我该如何重建堆栈?我可以只调用一个函数吗?
谢谢,
答案 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]) {
}
快乐编码..!