我正在尝试在用户设置当前模型时重置我的Core数据库。
我尝试了各种选项,但没有一种方法正常工作。
我希望在添加任何新数据之前删除Core数据及其所有数据(包括持久数据)。
我一直在使用SQLite数据库浏览器版本2.0b1来检查数据是否已被正确删除。我还在运行每个测试之前重置了模拟器。
我正在寻找一个简洁的解决方案,我已经搜索了stackoverflow以找到正确的方法。
此解决方案导致数据库被完全删除,但未创建新数据库。 https://stackoverflow.com/a/11812997/1565615
此解决方案未删除所有数据,因为之前的会话仍然存在,而且刚刚创建的数据。 https://stackoverflow.com/a/1078306/1565615
答案 0 :(得分:2)
我正在使用它:
NSError *error = nil;
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchREntityUser = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entityUser = [NSEntityDescription entityForName:@"EntityUser" inManagedObjectContext:context];
[fetchREntityUser setEntity:entityUser];
NSArray *fetchedObjUser = [context executeFetchRequest:fetchREntityUser error:&error];
if (error) {
XLog(@"deleteCoreDataEntitys Error: %@", [error localizedDescription]);
}
for (NSManagedObject *CDentityUser in fetchedObjUser) {
[context deleteObject:CDentityUser];
}
[context save:&error];