2014-02-25 10 views
1

나는 DB 업데이트하려면이 코드를 가지고 :아이폰 OS : 일대 다 관계와 원 -와 핵심 데이터 업데이트 개체 내 응용 프로그램에서

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 
      } 
     } 

그것을 모두 괜찮습니다하지만 구조체과의 관계에서 다른 두 개체가 :

"Id_Loc"(일대) "세부 사항"내가 그들을 업데이트하는 방법을 모르는

(1-1), 나는 '구조체'내 객체에서 호출하는 방법을 모른다 아무것도 찾을 수 없습니다. 도와 주실 수 있습니까? 감사합니다.

+0

'구조체'는 헤더에 몇 가지 메소드가 있어야합니다 (코드 표시). 관계에 이미 업데이트 할 개체가 있거나 새 개체를 추가해야합니까? 기존의 항목을 삭제하는 방법은 무엇입니까? – Wain

답변

2

.name, .val 및 .pos와 같은 방식으로 작동합니다.

일대일 관계가 객체를 반환하면 일대 다 관계가 NSSet을 반환합니다.

일대일 관계가 구조에서 막대까지이고 관계 이름이 bar라고하면 struct.bar를 사용하여 Bar 객체를 받게됩니다.

편집 : 새 개체를 일대 다 관계에 추가하려면 [struct addFooObject :];를 사용해야합니다. 여기서 Foo는 객체 이름입니다.

+0

아 답장을 보내 주셔서 감사합니다. – CrazyDev