2013-01-04 3 views
0

저는 많은 뷰 컨트롤러와 각각 코어 데이터 및 UITableView을 기반으로하는 프로젝트에서 작업하고 있습니다. 저장하는 데 문제가 있습니다. 테이블을 편집 할 때 현재 정보와 데이터를 저장해야합니다. 다음으로 사용자가 '저장'버튼을 두드리면 masterContextappDelegate 클래스가 있어야합니다 (그리고 나서야 masterContext에 dynamicaly를 저장할 수 없습니다!).임시 코어 데이터 컨텍스트 저장 및 저장

내 질문은 다음과 같습니다. 사용자가 저장 버튼을 탭하여 masterContext에 전달하면 현재 데이터를 어떻게 저장할 수 있습니까? temporaryContext을 만들고 masterContext과 병합해야하나요?

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

+0

downvoter에게 downvote 전에 의견을 제공하십시오. Downvote 메커니즘은 저자가 질문이나 답변을 개선하도록 강제합니다. 이 모든 것들이 전체 공동체를 돕는 것을 목표로합니다. 고맙습니다. –

답변

0

질문에 따라 다중 컨텍스트를 가질 필요가 없으며 변경 사항을 마스터 컨텍스트와 공유 할 필요가 없습니다. 다른 컨트롤러간에 공유하는 마스터 컨텍스트 만 사용하십시오. 보통 괜찮습니다.

두 가지 접근법이 유효합니다.

  • 는 첫 번째 방법은 당신이 "코드 주입"는 일종의 컨트롤러간에 문맥을 전달할 수 있다는 것을 의미 맥락

를 검색 할 수 있습니다 싱글 톤 클래스를 작성 지휘봉 접근

  • 을 전달합니다. masterContextcontroller1에 대한 strong 속성입니다

    controller1.masterContext = [self masterContext]; 
    

    .

    두 번째 방법은 핵심 데이터 스택 (일반적으로 응용 프로그램 대리자)을 설정하는 클래스에서 컨텍스트에 액세스 할 수있는 readonly property을 제공한다는 것을 의미합니다. 컨텍스트를 저장하려면 save 메서드를 제공 할 수도 있습니다. 나는 모든 설정 코드를 애플리케이션 위임에 넣는 것을별로 좋아하지 않는다. 그래서 나는 보통이 목적을 위해 싱글 톤 클래스를 만든다. 예를 들어 DCTCoreDataStack입니다.

    @MarcusZarra in PASSING AROUND A NSMANAGEDOBJECTCONTEXT ON IOS도 컨텍스트를 전달하는 몇 가지 기술을 보여줍니다.

    코어 데이터에 새로운 iOS 5 API를 사용하고 개인 대기열 (NSPrivateQueueConcurrencyType)에서 작동하는 마스터 컨텍스트와 기본 스레드 (NSMainQueueConcurrencyType)에서 작동하는 하위를 설정할 수도 있습니다. 이를 상위/하위 컨텍스트라고합니다. 주 스레드에서 수행 된 변경 사항은 CD 저장소의 변경 사항을 저장하는 마스터로 전달됩니다. 여기 몇 가지 메모. Core Data Release Notes. 또한 전체 설명을 보려면 Multi-Context CoreData을보십시오.

  • 관련 문제