2

在我的应用程序中,我有以下代码来更新数据库:

NSManagedObjectContext *context = [self managedObjectContext];

NSFetchRequest *fetchRequest=[NSFetchRequest fetchRequestWithEntityName:@"Struct"];
        NSError *error = nil;

        for (id element in array){
            [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"id==%@",[element objectForKey:@"id"]]];

            Struct *struct = [[context executeFetchRequest:fetchRequest error:&error] lastObject];

            if (struct != nil){
                //updating value of attributes
                struct.name = [element objectForKey:@"n"];
                struct.val = [element objectForKey:@"val"];
                struct.pos = [element objectForKey:@"pos"];


            }
             else{
              //create a new identity
             }
         }

没关系,但我还有其他两个与 Struct 相关的对象:

“Id_Loc”(一对多)“Details”(一对一)

我不知道如何更新它们,我不知道如何从我的对象“结构”中调用它们我什么也没找到你能帮帮我吗?谢谢

4

1 回答 1

3

它的工作方式与您使用 .name、.val 和 .pos 的方式相同。

一对一的关系会返回一个对象,一对多的关系会返回一个NSSet。

假设您的一对一关系是从 Struct 到 Bar,并且关系名称是 bar,您将使用 struct.bar 收到一个 Bar 对象。

编辑:如果您想将新对象添加到一对多关系中,您应该使用 [struct addFooObject:]; 其中 Foo 是您的对象名称。

于 2014-02-25T15:44:15.930 回答