외부 데이터 소스를 사용하는 iPhone 용 Core Data 응용 프로그램을 작성하려고합니다. 저는 실제로 객체를 유지하기 위해 핵심 데이터를 사용하는 것이 아니라 객체 라이프 사이클 관리를 위해 핵심 데이터를 사용하고 있습니다. 로컬 데이터에 Core Data를 사용하는 방법에 대해 꽤 좋은 아이디어가 있지만 원격 데이터로 몇 가지 문제가 있습니다. 필자는 Flickr의 API를 예제로 사용하겠다.코어 데이터로 원격 데이터에 액세스하기위한 패턴은 무엇입니까?
내가 가장 먼저 말하고자하는 것은 최근 사진 목록을 외부 데이터 소스에서 가져와야한다는 것입니다. 목록을 검색 한 후에는 각 사진에 대해 관리되는 객체를 반복하고 만들어야하는 것처럼 보입니다. 이 시점에서 필자는 코드에서 계속 작업하고 표준 Core Data API를 사용하여 가져 오기 요청을 설정하고 개, 즉 개에 대한 사진의 하위 집합을 검색 할 수 있습니다.
하지만 사용자의 사진 목록을 계속 검색하려면 어떻게해야합니까? 이 두 데이터 세트가 교차 할 가능성이 있기 때문에 기존 데이터에서 가져 오기 요청을 수행하고 이미있는 데이터를 업데이트 한 다음 새 개체를 삽입해야합니까?
- 기존의 패턴에서
, 단순히 이러한 데이터 세트의 각각에 대해 별도의 데이터 구조를 가지고 적절하게 액세스 할 것입니다. recentPhotos 세트와 usersPhotos 세트. 그러나 핵심 데이터의 일반적인 패턴은 하나의 관리되는 개체 컨텍스트를 사용하는 것으로 보이기 때문에 데이터를 주 데이터 풀과 병합해야하는 것으로 보입니다 (내가 틀릴 수도 있음). 그러나 그것은 단지 사진 목록을 잡는 데 많은 오버 헤드가있는 것처럼 보입니다. 다른 집합에 대해 별도의 관리되는 개체 컨텍스트를 만들어야합니까? 핵심 데이터가 여기서도 사용해야합니까?
핵심 데이터에 대해 매력적이라고 생각하는 것은 (웹 서비스의 경우) 전에 특정 데이터에 대한 요청을하고 요청에서 필터링하거나 코드에서 필터링하고 내가 사용할 목록을 생성한다는 것입니다 . Core Data를 사용하면 개체 목록을 가져 와서 내 풀에 추가하고 (필요한 경우 이전 개체를 업데이트 할 수 있음) 개체에 대해 쿼리 할 수 있습니다. 그러나이 방법으로 볼 수있는 한 가지 문제는 개체가 외부에서 삭제 된 경우 오래된 데이터를 보관하고 있기 때문에 알 수 없다는 것입니다.
여기에 기지가 있습니까? 사람들이 원격 데이터 및 핵심 데이터를 처리하기 위해 따르는 패턴이 있습니까? :) 나는 그들이 그것을 한 것을 말하는 사람들의 몇몇 포스트를 찾아 냈다, 그리고 그 (것)들을 위해 작동한다, 그러나보기의 방법에서 조금. 감사.
원하는 것을 더 구체적으로 지정할 수 있습니까? '외부 데이터 소스 사용'은 매우 모호합니다. 외부 데이터베이스 조각을 로컬로 미러링하려는 것 같습니다. 당신은 국지적 인 변화를 일으킬 필요가 있습니까? 갈등은 어떤가? 이것은 어려운 문제이며 자세한 내용은 지침을 제시하는 데 도움이됩니다. –
아마 부실한 스레드, 나는 배경 스레드에서 물건을 가져 와서 영구 저장소에 쓰려고 시도하고 거기에서 주 스레드까지 알림을 받도록 유혹 될 것입니다. 만약 내가 그랬다면 – bshirley