2015-01-27 8 views
0

문제가 있습니다. 여러 사용자가 로그인하여 로컬로 데이터를 저장할 수 있도록 허용해야하는 iOS 클라이언트 앱이 있습니다. 데이터가 RESTful 서비스와 동기화되며 사용자의 변경 사항과 함께 최신 스냅 샷을 모든 사용자에게 로컬로 저장해야합니다.RESTkit, CoreData : CoreData로 trasferring하기 전에 바로 처리하십시오.

이전에이 응용 프로그램은 데이터 스토리지 엔진으로 SQLlite로 구현되었습니다. 이제 CoreData로 마이그레이션하고 싶습니다.

는 어떻게해야합니까 :

  • 서버는 현재 사용자 나에게 개체를 반환합니다. 사용자가 승인하고 세션을 가져올 때 사용자 ID는 전송되지 않습니다.
  • 로그인 한 사용자가 알고있는 특정 사용자의 모든 데이터를 저장해야합니다. 그것을하기 위해서 나는 ID = 12345를 가진 사용자를 위해 객체를 저장하기 위해 CoreData를 말할 필요가있다.

문제는 :

  • 내가 특정 사용자의 ID와 연관된 특정 개체를 저장하는 CoreData에게 있습니다.
  • 어떻게 든 RESTkit으로 매핑 된 객체를 변경하는 방법이 필요합니다. 적절한 ID 필드를 설정해야합니다.

이 작업은 SQLlite에서는 직선적이며 간단하지만 CoreData에는 문제가 있습니다. CoreData가 명확한 설명이나 유용한 링크로 나를 도와달라고 요청하는 것에 대해 아직 모른다고 생각합니다.

+0

어떤 요청을 하시겠습니까 (경로/매개 변수/소스 객체의 사용자 ID가 어딘가에 있습니까?). – Wain

+0

@Wain 사용자 ID가 없습니다. 우리는 임시 액세스 토큰을 사용하여 서버와 통신합니다 (보통은 그렇듯이). 로그인 이름으로 사용자를 로컬로 식별합니다. – DaddyM

+1

그래서 좋은 방법이 아닙니다. 해키, 요청에 매개 변수로 ID를 추가 할 수 있으므로 다시 매핑 할 수 있습니다 (RestKit dev 분기 필요). non-hacky는 매핑 결과에 반환 된 객체를 업데이트하고 다시 저장하는 것입니다. – Wain

답변

1

좋은 방법은 아닙니다.

해키, 요청에 매개 변수로 ID를 추가하여 다시 매핑 할 수 있습니다 (작성시 RestKit dev 브랜치가 필요함).

비 해킹은 매핑 결과에 반환 된 개체를 업데이트하고 다시 저장하는 것입니다.

JSON을 다운로드 한 다음 다른 작업을 실행하여 JSON을 다운로드 할 수도 있습니다.

+0

덕분에 사용할 것입니다. 우리는 또한 같은 해결 방법으로 끝났습니다. 문제는 모든 것이 해결 방법이며 곧장 해결책이 아니라는 것입니다. 그래서 우리는 강력한 SQLite를 사용하기로 결심했습니다. – DaddyM