我有一个可以在手机中保存大量数据的应用。我使用以下代码:
- (void)datostickets:(NSString*)cod local:(NSString*)nombre{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *ticket =[NSEntityDescription entityForName:@"History" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:ticket];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(codigo = %@)", cod];
[request setPredicate:pred];
//NSManagedObject *matches = nil;
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];
if ([objects count] == 0) {
NSManagedObject *nuevoticket = [NSEntityDescription insertNewObjectForEntityForName:@"History" inManagedObjectContext:context];
[nuevoticket setValue:[NSString stringWithFormat:@"%@",cod] forKey:@"codigo"];
[nuevoticket setValue:self.idloc forKey:@"actividad"];
[nuevoticket setValue:nombre forKey:@"localidad"];
NSLog(@"GRABA: %@",cod);
} else {
NSLog(@"VERIFICA");
check++;
}}
它保存得很好,但是如果应用程序崩溃会发生问题(我认为它只会以这种方式发生,同时应用程序只会在我操作数据时崩溃)。
当应用程序崩溃时,Core Data开始表现得非常奇怪,并删除了我保存的最新数据,但不知何故,一些旧数据未被删除(显然当我更改viewController Core Data进行提交时,所以这个旧的数据未删除)。
当我通过应用程序窗口导航时,此问题已解决,如果应用程序崩溃,它将再次启动。我知道问题很奇怪。
那么,有没有办法解决这个问题?也许有一个提交声明或类似的东西。
感谢您的帮助
答案 0 :(得分:0)
使用[context save:& error]提交更改。
答案 1 :(得分:0)
使用上下文保存&错误。或者如果您使用magicall记录使用MR_Save持久存储和等待方法,则无法从存储中删除数据。