0

我尝试从实体“Teilnehmer”中获取成员,然后我想将其保存到另一个与“buchung”有关系的实体“Buchungsteilnehmer”。

问题是,nsset 函数只保存姓氏并将其与我的实体“buchung”建立关系。但我想将 for 语句中的所有成员存储为与“buchung”的关系。

你能帮我吗

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

        [request setEntity:entity];

        NSArray *events = [context executeFetchRequest:request error:nil];




        for (Teilnehmer *teil in events) {
         teilnehmer = [NSEntityDescription insertNewObjectForEntityForName:@"Buchungsteilnehmer" inManagedObjectContext:context];
            teilnehmer.name=teil.name;
            NSLog(@"Name der Teilnehmer lautet: %@",teil.name);
            NSError *error;
            if (![context save:&error]) 
            {
                NSLog(@"Fehler beim hinzufügen : %@", [error localizedDescription]);
            }

        }

        NSSet *set = [NSSet setWithObject:teilnehmer];    
        NSLog(@"SET: %@",set);
        buchung.buchungsteilnehmer=set;

        NSError *error;
        if (![context save:&error]) 
        {
            NSLog(@"Fehler beim hinzufügen : %@", [error localizedDescription]);
        }
4

2 回答 2

0

在你的 for 循环开始之前创建一个 NSMutableSet。每次插入新实体时调用集合上的 addObject。

于 2012-04-16T12:59:55.687 回答
0

你只用一个对象创建你的集合,那么你怎么期望它有多个对象呢?

更改您的代码如下:

  NSMutableSet *set = [[NSMutableSet alloc] init];                

  for (Teilnehmer *teil in events) {
         teilnehmer = [NSEntityDescription insertNewObjectForEntityForName:@"Buchungsteilnehmer" inManagedObjectContext:context];
            teilnehmer.name=teil.name;
            NSLog(@"Name der Teilnehmer lautet: %@",teil.name);
            NSError *error;
            if (![context save:&error]) 
            {
                NSLog(@"Fehler beim hinzufügen : %@", [error localizedDescription]);
            } else {
                [set addObject:teilnehmer];
            }

        }

   buchung.buchungsteilnehmer=set; // I assume you synthesized this member so it retains set
   [set release]; 
于 2012-04-16T13:01:02.017 回答