2011-12-01 4 views
0

나는 하나의 수신자에게 많은 선물을 줄 수있는 간단한 아이폰 애플리케이션을 가지고있다. (즉, 한 명의 수신자는 많은 선물을 얻을 수 있지만 각 선물은 하나의 수신자에게 가야한다.) 선물과 수신자 간의 관계를 만들기 위해 먼저 관리 객체 컨텍스트에서 새받는 사람 개체를 만들고 새 컨트롤러의받는 사람 개체를 새받는 사람으로 설정 한 다음 새 컨트롤러를 navigationController로 가져 오는 중입니다. 새 컨트롤러가 반환되면 새받는 사람에게 선물을 할당합니다 .NSObjectInaccessibleException 오류를 디버깅 중입니다. 개체의 managedobjectcontext가 nil이됩니까?

그 거래 코드 : 새 컨트롤러 내에서

RecipientEditController *nextController = [ 
              [RecipientEditController alloc] 
              initWithStyle:UITableViewStyleGrouped 
              ]; 

Recipient *new = [NSEntityDescription 
        insertNewObjectForEntityForName:@"Recipient" 
        inManagedObjectContext:gift.managedObjectContext 
       ]; 
[new addGiftsObject:gift]; 

nextController.recipient = new; 
nextController.recipient.hideRelationships = YES; 

[self.navigationController pushViewController:nextController animated:YES]; 

if ([new hasData]) { 
    gift.recipient = new; 
} else { 
    [gift.managedObjectContext deleteObject:new]; 
} 

break; 

받는 사람 개체가 Oper 보인다 정상적으로 먹었다. ViewWillAppear 메서드 내에서받는 사람에 대한 설명을 인쇄 할 수 있습니다. 그러나 tableView : cellForRowAtIndexPath 메소드를 사용하면받는 사람 객체가 더 이상 유효하지 않습니다. 해당 managedObjectContextProperty는 nil이고 recipient.firstName (모델 클래스 및 데이터베이스에 정의 된 속성)에 대한 호출이 발생하면 오류가 발생합니다.

오류 : 무슨 일이 일어나고 있는지

2011-11-30 17:22:18.111 Gift Hero[36359:b603] *** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x59e65c0 <x-coredata://97FDB78C-6F65-4B54-8DBB-00A9C6A4B4C8/Recipient/p21>'' 

어떤 생각? 이것은 말 그대로 나를 견과를 몰고있다! 어떻게하면 수신자가보기를 표시하고 테이블을 보여주는 것 사이를 무효화 할 수 있습니까?! 사전에

감사합니다, PT

답변

0

좋아, 그래서 나는이 알아 낸 것 같아요. 새로운 viewController를 푸시면 이 아닌은 다른 함수를 호출하는 것처럼 현재 메소드의 실행을 끝내는 것처럼 보입니다. 따라서 뷰 컨트롤러를 누른 후에 객체를 삭제하면 다른 뷰 컨트롤러에서 객체가 삭제됩니다. 나는이 논리의 뒤에있는 논리를 정말로 이해하지 못한다. 그러나 그것은 그것이 무엇인지에 관한 것이다 ...