iCloud를 지원하기 위해 로컬 Core Data-driven 앱을 업데이트하고 있습니다. 내가 예상하는 한 가지 도전은 내가 "주식 객체"라고 부르는 것입니다. 즉, 사용자가 99 %의 사용자가 맞춤 설정할 첫 번째 출시 시점에 앱이 제공하는 데이터입니다. 그런 다음 사용자가 새 장치에 앱을 처음 실행하면코어 데이터, iCloud 및 스톡 오브젝트
재고 개체
Item A
Item B
[사용자
Tomatoes
Potatoes
개체, 나는 기본 동작이 될 것이라고 생각 iCloud 영구 저장소 (Item A, Item B, Tomatoes, Potatoes)의 사용자 정의 된 객체와 병합되는 주식 객체의 재 작성으로 인해 혼란을 낳습니다 y 사용자 경험.
첫 번째 실행시 iCloud 데이터를 동 기적으로 확인하고 존재하는 경우 주식 개체를 생성하지 않을 수도 있습니다. 그러나 사용자는 첫 번째 실행시 오프라인 상태가 될 수 있으며 두 번째 실행에서는 로컬 주식 개체와 iCloud 사용자 지정 개체의 동일한 바람직하지 않은 병합이 발생합니다.
iCloud 병합에 논리를 추가하는 방법이있어 클라우드 (토마토 및 감자)의 사용자 정의 된 객체가 도착하면 빔이 생성되기 전에 로컬 스톡 객체 (항목 A 및 항목 B)를 삭제할 수 있습니까?
감사합니다.
글쎄, 나는 그 선전과 함께 사용자를 문제시하고 싶지 않습니다. 다른 문제는 특별한 방법으로 처리해야하는 주식 개체로 가득 찬 전체 개체가 있다는 것입니다. Food entity와의 관계에서 주식 FoodType 객체 ("Meat", "Vegetable", "Dessert"등)를 상상해보십시오. 속성이 모두 일치하더라도 서로 다른 장치에서 서로 다른 시간에 만들어지면 코어 데이터가 서로 다른 것으로 간주됩니다. 그래서 병합이 일어 났을 때, 갑자기 두 개의 "고기"FoodTypes가 생기고 어떤 음식은 하나의 물건에 연결되고 어떤 음식은 다른 음식에 연결됩니다. – ed94133
나는 비슷한 경우가있다. 유용했던 시드 객체를 제공했습니다. 대부분 변경되지 않았습니다. 하나의 간단한 아이디어는'validated'라는 부울 속성을 추가하고 거기에서 논리를 취하는 것입니다. 그런 다음 사용자가 알지 못하는 상태에서 백그라운드에서 동등성과 병합 여부를 확인할 수 있습니다. – Mundi