2012-04-16 59 views
0

我嘗試從實體「Teilnehmer」中獲取成員,然後我想將其保存到另一個實體「Buchungsteilnehmer」與「buchung」的關係。NSSet只需從我的最後一個值設置

問題是,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]); 
     } 

回答

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]; 
+0

太感謝你了,它的工作原理! – 2012-04-16 13:08:50

+0

你的歡迎! – giorashc 2012-04-16 13:09:19

0

您之前在循環開始創建的NSMutableSet。每次插入新實體時,都會在集合上調用addObject。

相關問題