【问题标题】:Whats wrong with my delete core object method?我的删除核心对象方法有什么问题?
【发布时间】:2015-08-13 15:00:09
【问题描述】:

我有一个由 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];
    }
}

任何帮助或反馈将不胜感激。提前致谢!

【问题讨论】:

    标签: ios objective-c core-data


    【解决方案1】:

    你必须像这样在删除后保存上下文:

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

    【讨论】:

      猜你喜欢
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多