2013-10-21 2 views
1

코어 데이터가 작동하는 방식을 파악하는 데 정말로 어려움을 겪고 있으며, 여기에서 매우 기본적인 도움을 얻을 수 있기를 바랍니다.핵심 데이터 및 다중 엔터티

Profiles<-->>Events 

내가 성공적으로 술어 가져 오기를 통해 테이블보기에서 프로필 테이블보기와보기 행사에 프로필보기 프로필을 추가하는 방법을 알아 낸 :

나는 두 개의 엔티티가 있습니다.

이제 내가 잃어버린 부분이 있습니다. 이벤트 엔티티에서 이벤트를 업데이트하려고합니다. 이벤트 엔티티를 업데이트하기 전에 술어와 함께 가져 오기를 수행하여 프로파일 오브젝트를 작성해야합니까? 아니면 그냥 이벤트 엔티티를 업데이트하고 어쨌든 관계를 통해 연결된 프로필을 말할 수 있습니까? 여기

내가 로그 잼을 명중 한 곳이다 :

// add new event 
    //NSLog(@"Adding New Event"); 

    NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Events"]; 
    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY profile.profilename=[cd] %@",[self profilename]]; 

    [fetchRequest setPredicate:predicate]; 

    self.events = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; 

    //insert event info 
    NSManagedObject *eventInfo = [NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:self.managedObjectContext]; 


///////// THIS IS WHERE I NEED HELP 



} 


// save the context 
NSError *error = nil; 
if (![managedObjectContext save:&error]){ 
    NSLog(@"Error! %@",error); 
} 

나는 플랫 파일을 만들고 해당 작업을 그냥 준비에 대해 해요! 그것은 나를 미치게합니다!

편집 - 아래 코드를 변경 * ** * ** * ** * ** * ** * ** * ** * *

// add new event 
    //NSLog(@"Adding New Event"); 

    Events *newEvent = (Events *)[NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:managedObjectContext]; 
    newEvent.eventdesc=self.eventDescTextField.text; 


    NSString *wkst = eventDescTextField.text; 
    NSNumber *wk = [NSNumber numberWithInteger: [wkst integerValue]]; 
    newEvent.weeksout = wk; 

이제 이벤트 엔티티에 현재를 사용해야 함을 알았습니다. 프로필 .. 어떻게 관계에 액세스합니까?

+0

특정 프로필에 이벤트를 추가 하시겠습니까? – Bot

+0

귀하의 질문은 이벤트 업데이트에 관한 것입니다. 거기에서 이미 그것이 있다고 가정합니다. 어떤 경우에는 이벤트를 만들 때부터 이미 프로필 관계가 설정되어 있으므로 이벤트와 프로필을 연결하기위한 작업은 할 수 없습니다. – Abizern

+0

기존 항목의 변경 사항을 저장하는 방법을 알아 냈습니다.하지만 새 항목을 추가하는 것은 내가 걸림돌이되는 곳입니다. – Mark

답변

1

제공하신 코드를 보면 핵심 데이터에 대한 오해가 있다고 생각합니다.

프로필과 관련된 모든 이벤트를 가져 오는 것 같습니다. 이를 위해 가져 오기 요청을 수행 할 필요가 없습니다. 핵심 데이터는 객체 그래프입니다. 즉, 관리 대상 객체 컨텍스트에 객체가 있고 관계를 통해 관련 객체를 가져 오는 경우 가져 오기 요청을 실행할 필요가 없습니다.

+0

감사합니다. 예 ... 정확히 문제가 있습니다. 나는 SQL과 핵심 데이터에서 벗어날 수없는 것 같습니다. – Mark

+0

'newEvent.profile = <관련 프로파일로 추가하고자하는 프로파일>;을 작성할 수 있어야합니다 (모델 작성 방법에 따라 다름). – Abizern

관련 문제