2015-08-13 3 views
1

У меня есть метод, который вызывается в делегате приложения с помощью UIViewControllers, который удаляет основной объект, который соответствует имени выбранного объекта. Он удаляет из UIListView, что является правильным, и метод обновления (который проверяет основные данные для всех объектов) не возвращает его в представление списка. Однако, когда я закрываю приложение и перезапускаю его, он возвращает только удаленные объекты. Вот метод:Что не так с моим методом удаления основных объектов?

-(void)deleteObject:(NSString *)configName 
{ 
    //Generates the request context for core data 
    NSManagedObjectContext *context = [self managedObjectContext]; 
    NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"StoredSetups" inManagedObjectContext:context]; 
    NSFetchRequest *request = [[NSFetchRequest alloc]init]; 
    [request setEntity:entityDesc]; 
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"(config_name = %@)", configName]; 
    [request setPredicate:pred]; 
    NSManagedObject *matches = nil; 
    NSError *error; 
    NSArray *objects = [context executeFetchRequest:request error:&error]; 

    if (objects.count == 0) 
    { 
     NSLog(@"No Matches"); 
    } 
    else 
    { 
     matches = objects[0]; 
     [context deleteObject:matches]; 
    } 
} 

Любая помощь или обратная связь будет принята с благодарностью. Заранее спасибо!

ответ

1

вы должны сохранять контекст после удаления, как это:

if (objects.count == 0) 
    { 
     NSLog(@"No Matches"); 
    } 
    else 
    { 
     matches = objects[0]; 
     [context deleteObject:matches]; 
     [context save:&error]; 
    } 
Смежные вопросы