2013-06-21 2 views
0

.xibs를 사용 중이고 핵심 데이터를 사용하고 싶습니다. 가장 간단한 대답은 AppDelegate.h에 @property을 정의하는 것입니다. 하지만 xml-parser 파일에서 내 모델을 채울 필요가 있고 많은 컨트롤러에서 데이터를 가져 오려고합니다. 따라서 [[[UIApplication sharedApplication] delegate] context]을 사용하면 너무 추합니다. 잘 생긴 해결책이 있습니까?iOS 앱에서 NSManagedObjectContext를 전달하는 방법은 무엇입니까?

+1

는 싱글'..DataManager'를 만들고이를 데이터 저장소에 대한 액세스를 제어했다. – Wain

+0

네, 생각했습니다. 아무 해결책이 없다면, 나는 싱글 톤을 만들 것입니다. –

+1

[Core Data Release Notes] (http://developer.apple.com/library/mac/#releasenotes/DataManagement/RN-CoreData/index)도보십시오. .html) : * "... 중첩 된 컨텍스트를 사용하면 컨텍스트에 직접 액세스하는 대신 컨텍스트에 액세스하는 컨텍스트에 액세스 할 때"보기 배턴 패스 "방식을 채택하는 것이 중요합니다. 응용 프로그램 위임. " –

답변

1

서브 클래스 NSManagedObject에있는 모든 객체에도 컨텍스트가 있음을 기억하십시오. BookAuthor (기본 예)라고 가정 해 보겠습니다. 이것은 Entitis ofc입니다. 관계 1 - n (한 명의 저자 - 여러 권의 책).

여기서는 성취하고자하는 것에 대해 잘 알지 못하지만 대부분의 응용 프로그램에는 마스터 세부 사항 세부 정보 ... viewControllers가 있습니다. 그래서 예를 들어 :

당신의 MainViewController는 AuthorsViewController입니다. 이것은 저자가있는 tableView입니다. 저자를 두드리고 그가 쓴 책을 보려고합니다. 에 따라서 당신의 BooksViewController 당신은 하나 개의 모델 속성이 있습니다

@property (strong,nonatomic) Author *author; 

당신은 여러 가지 방법으로 설정할 수 있습니다. 사용자 설정 도구, segue에서 전달 ... 신경 쓰지 마라. 나는 이것이 꽤 분명하다고 확신한다.

위의 내용을 수행 한 후에 이미 BooksViewController에 컨텍스트가 있습니다. 당신이 쓸 때마다 :

self.author.managedObjectContext 이것은 올바른 문맥이 될 것입니다.

따라서 navigationController 앱을 사용하는 경우 AppDelegate 또는 singleton 클래스 또는 mainVC에 컨텍스트를 만들 수 있습니다. 한 번만 전화를 걸면 통과 할 NSManagedObject에서 전화합니다.