应用崩溃时,Core Data正在删除记录

时间:2015-05-22 20:41:23

标签: ios objective-c core-data

我有一个可以在手机中保存大量数据的应用。我使用以下代码:

- (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进行提交时,所以这个旧的数据未删除)。

当我通过应用程序窗口导航时,此问题已解决,如果应用程序崩溃,它将再次启动。我知道问题很奇怪。

那么,有没有办法解决这个问题?也许有一个提交声明或类似的东西。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

使用[context save:& error]提交更改。

答案 1 :(得分:0)

使用上下文保存&错误。或者如果您使用magicall记录使用MR_Save持久存储和等待方法,则无法从存储中删除数据。