2013-03-12 2 views
0

레코드가 추가되고 업데이트되었습니다. 그런 다음 서버와 동기화하십시오. 서버 응답에 따르면, 그 중 하나가 업데이트에 실패하면 이전 값으로 NSManagedObject를 갖고 싶습니다. 내가 연구 할 때 UndoManager는 스택으로 작동하므로 Id가있는 레코드를 찾을 수없고 해당 레코드를 실행 취소 할 수 없습니다.코어 데이터가 특정 레코드를 실행 취소합니다.

마지막으로이 문제에 대해 무엇을 제안 하시겠습니까?

답변

0

고유 한 ID 속성을 도입하고이를 서버와 동기화하여 객체를 추적 할 수 있습니다. 나는 이것이 견고하고 견고한 디자인이라고 생각한다. 나는 여러 번 문제없이 사용했다.

Apple은 각 관리 객체에 objectID를 제공하지만 실제로는 서로 다른 관리 객체 컨텍스트에 걸쳐 데이터의 일관성을 보장하기위한 것입니다. 외부 시스템에 대해이 ID를 "남용"하지 않는 것이 좋습니다.

서버가 이전 값 (업데이트되지 않은 메시지와 함께)을 제공 할 수 있으며 사용자의 ID 데이터를 사용하여 레코드를 찾는 코어 데이터 저장소에 다시 쓸 수 있습니다. 보다 세부적인 변경 및 업데이트 관리를 위해 타임 스탬프 속성을 사용할 수도 있습니다.