2012-12-19 6 views
0

최근 CoreData를 배우기 시작했습니다. 데이터베이스를 만들고, 테이블을 만들고 (이벤트) 데이터를 추가하는 방법을 알아 냈습니다. 이것으로 삭제하십시오. 이제 문제. 내 프로젝트에는 여러 클래스가 있습니다. (myProject.h/myProject.m) 다른 클래스 (myProjectOtherClass.m)의 요청에 따라 데이터를 가져 오려고합니다. 어떻게 할 수 있습니까? 이? myProject.m 클래스에서이를 수행하는 방법을 알고 있지만 myProjectOtherClass.m에서 수행하는 방법은 무엇입니까?다른 클래스의 Core Data에서 값을 가져 오는 방법

+0

에 사용할 수
또는 대안? 예 : myProject.h를 가져옵니다. 다른 파일에서 [myProject myClassMethod]를 호출하면됩니까? – squarefrog

답변

0

myProject.h/myProject.m의 엔티티 (TableNames)에 대한 가져 오기가이 데이터 항목의 속성을 볼 수 있다고 가정합니다. 필요한 데이터 엔티티를 사용하려는 다른 클래스에서도 가져와야합니다 , 삽입 삭제 등

결과를 가져 오거나 새로운 엔티티를 삽입하려면 NSManagedObjectContext의 새 인스턴스를 만들어야합니다.이 경우 영구 저장소 변수 (NSPersistentStoreCoordinator)에 대한 속성이 필요합니다. 저장소가있는 곳을 보여줍니다 .In Xcode의 CoreData 템플릿을 사용하여 프로젝트를 만든 경우 가장 단순한 경우, 모두 AppDelegate에 있으므로 AppDelegate 외부에서 속성을 사용하여 볼 수 있습니다.

업데이트 : 당신은 또한 AppDelegate에 단일 MOC에 속성을 넣고 그냥 다른 클래스에서 메소드를 호출 할 수 없습니다 모든 단일 코어 데이터 작업

+0

각 클래스에 다른 관리 객체 컨텍스트가 필요하지 않습니다. 그들은 모두 동일한 컨텍스트를 사용해야하며 그렇지 않으면 변경 사항을 영원히 병합합니다. 새로운 문맥을 원하는 유일한 시간은 멀티 스레드 작업입니다. – jrturton

+0

당신은 병합하는 것이 옳았 습니다만, 큰 데이터 세트를 가져 와서 가져 오기 위해 개별적으로 개별적으로 사용합니다. managedOject ID를 가지고 있으며 다른 관리 대상 객체 컨텍스트에서 가져올 수 있습니까? –

+0

편집 한 후 내 downvote를 삭제했습니다! – jrturton

관련 문제