gpt4 book ai didi

ios - 保存上下文不会保留更新的 NSManagedObject

转载 作者:行者123 更新时间:2023-12-01 16:44:29 24 4
gpt4 key购买 nike

在我的应用程序中,我有 2 个详细 View Controller :

  • 产品名称更新 Controller
  • 产品属性更新 Controller

  • 在产品属性更新 View Controller 中,一切都很好,没有任何问题。

    在产品名称更新 View Controller 中,但是保存上下文不会给出任何错误。我看到 Root View Controller 中的产品名称发生了变化,但是当我重新打开我的应用程序时,产品名称向我显示了旧名称。所以它没有被持久化。

    根据我的 updateProduct,我的问题是什么?方法:
    -(void)updateProduct:(id)sender
    {
    AppDelegate *delegate = [UIApplication sharedApplication].delegate;
    NSManagedObjectContext *context = [delegate managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:[NSEntityDescription entityForName:@"Products" inManagedObjectContext:context]];

    NSError *error = nil;

    NSPredicate *predicateID =[NSPredicate predicateWithFormat:@"productID==%d",[secim intValue]];
    [request setPredicate:predicateID];

    NSArray *myobj=[context executeFetchRequest:request error:&error];
    NSManagedObject *prod1=[myobj objectAtIndex:0];

    [prod1 setValue:textProduct1.text forKey:@"productName"];



    if (![context save:&error]) {
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
    }


    [self.navigationController popToRootViewControllerAnimated:YES];

    NSLog(@"Data saved");
    }

    最佳答案

    除了 @蒙迪在这里,您正在执行以下操作

    NSArray *myobj = [context executeFetchRequest:request error:&error];
    NSManagedObject *prod1 = [myobj objectAtIndex:0];

    但你没有检查 error如果 myobj包含元素。

    总是 检查错误,而有可能有错误。

    关于ios - 保存上下文不会保留更新的 NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073249/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com