2011-03-25 6 views
0

나는 실행시 저장된 사용자 로그인을 확인하고 나중에 모델, 저장소, 코디네이터 및 컨텍스트를 설정하는 핵심 데이터 응용 프로그램을 구축 중입니다. 내가 가진 유일한 문제는 사용자가 인터페이스의보기를 클릭하자 마자 응용 프로그램이 managedObjectContext를 가져 와서 상점을 아직 만들지 않았으므로 예외가 발생한다는 것입니다.CoreData 응용 프로그램이 managedObjectContext를 자동으로로드하지 못하게하는 방법은 무엇입니까?

이렇게하는 것을 막을 수있는 방법이 있습니까?

건배.

답변

2

Apple에서 제공하는 Coredata 보일러 플레이트를 사용하는 경우 해당 속성에 액세스 할 때 managedObjectContext 객체가 지연되어로드됩니다.

변수를 직접 액세스하는 대신 속성 (예 : self.managedObjectContext)을 통해 컨텍스트에 액세스하도록 컨텍스트에 액세스하기 만하면 컨텍스트, 개체 모델 및 영구 저장소 조정자가 적절하게 만들어집니다.

추신 : 여기에 관련 코드를 게시하지 않았으므로 추측에 불과합니다.

+0

'self'를 사용하지 않으면 제 추측이었습니다. –

0

왜 이미 생성하거나 액세스시 생성하지 않고 관리 대상 객체 컨텍스트에 의존하는 뷰를 표시하고 있습니까?

- (NSManagedObjectContext *)managedObjectContext { 
    if (!_managedObjectContext) { 
     // create context, and store it in _managedObjectContext 
    } 
    return _managedObjectContext; 
} 

(이 코드에서 _managedObjectContext 컨텍스트를 저장할 클래스에 바르입니다) :

일반적인 패턴은 다음과 같이 관리되는 개체 컨텍스트 게터 모습 뭔가를하는 것입니다. 그렇게하면 필요한 경우 컨텍스트가 자동으로 만들어집니다. Apple의 표준 샘플 코드는 바로이 작업을 수행합니다.

관련 문제