2013-06-21 3 views
4

MagicalRecord은 coredata를 관리하기에 좋은 라이브러리입니다. 내 응용 프로그램에서 우리는 JSONModel을 사용하는 Json을 관리하기 위해 웹 서비스에서 json을 처리해야합니다. 이제 문제는 마법 레코드와 jsonModel을 관리하기 위해 두 개의 별도 클래스를 사용해야한다는 것입니다.MagicalRecord가있는 JSONModel

이 두 가지를 결합 할 수있는 방법이 있습니까? 미리 감사드립니다.

+0

웹 서비스에서받은 모든 데이터를 핵심 데이터로 직접 가져 오는 경우 관리 대상 객체 자체를 사용할 수 있지만 만들거나 업데이트하는 등의 몇 가지 방법을 직접 작성해야합니다. – Anupdas

+0

@Anupdas thats using 마법의 기록 만 그렇지 않나요? – Eldhose

+2

MagicalRecord에는 좋은 가져 오기 기능이 있다는 사실을 알고 계실 것입니다. 이것은 가져 오기에 관한 MagicalRecord의 저자에 의한 훌륭한 [튜토리얼] (http://www.cimgf.com/2012/05/29/importing-data-made-easy/)입니다. 이렇게하면 핵심 데이터에 JSON을 추가하기 전에 다른 모델 객체와 JSON을 구문 분석해야 할 필요가 없어집니다. – Anupdas

답변

4

은 내가 개인적으로 할 것은 메소드를 호출 내 모든 JSONModel 인스턴스에 추가하는 것입니다

- (ID) mergeWithContext : 나는 웹, JSONModel 파싱에서 JSON 객체를 얻을 때마다

그것은 나를 위해 필요한 데이터를 변환하고 CoreData에 저장하려면 그냥 mergeWithContext :를 호출하고 현재 컨텍스트를 전달합니다.

내 mergeWithContext : 메소드에서 추가로 현재 JSONModel 객체와 일치하는 새 엔티티를 만들고 모든 값을 복사합니다. (실제로 모델 ID가있는 엔티티가 CoreData에 이미 있는지 여부도 확인합니다. 그런 다음 업데이트합니다. 그렇지 않으면 새 인스턴스를 만듭니다.)

데이터를 저장할 때 사용자 지정 동작을 추가해야하는 경우 상당히 어렵지 않게 유연성을 얻을 수 있습니다.

mergeWithContext : 물론 엔티티 자체를 반환하므로 필요한 경우 추가 작업을 할 수 있습니다.

+0

이 아이디어를 주셔서 감사합니다.이 메시지를 구현하는 방법에 대한 샘플 코드를 제공 할 수 있습니까? – Eldhose