2009-09-25 2 views
0

저는 Core Data (iPhone 용)와 Im을 사용하여 내 디자인 접근 방식과 관련된 몇 가지 문제가있는 첫 번째 프로젝트를 디자인하고 있습니다.핵심 데이터 : 설계 질문. 개체 래퍼 또는 아닙니다?

사용자가 주문을 만들 수있는 응용 프로그램을 만들고 있습니다 (레스토랑에 대해 가정 해 봅시다). 저는 그래픽 디자이너를 사용하여 퍼시스턴스 오브젝트 (예 : OrdeMO)를 모델링하고 있습니다. MO를 각 이름의 ead에 추가하여 해당 관리 객체를 나타냅니다. XCode를 사용하여 Managed Object Class를 자동으로 생성합니다.

관리 컨텍스트에서 새 개체를 검색하거나 만들 수있는 "DAO"클래스를 만들었습니다.

내 문제가 있습니다.

사용자가 만드는 순서를 저장하기 위해 OrderMO 개체를 만들고 싶지만 사용자가 실제로 배치 할 때까지는 컨텍스트의 일부가되고 싶지 않습니다. [OrderMO alloc]을 사용하여 객체를 만들려고했지만 "incomplete"라는 객체가 있는데 그 속성 중 하나를 설정하려고하면 오류가 발생합니다.

문제가 있다고 가정하고 그것을 사용하기 위해 컨텍스트에서 주문을 작성해야합니다. 그래?

내가 고려한 다양한 옵션 : 사용자가 순서를 폐기하는 경우

  1. 컨텍스트에있는 개체 및 사용자 롤백을 만듭니다. 문제는 사용자가 자신의 환경 설정과 같이 프로세스 중에 다른 컨텍스트 객체를 저장할 수 있으므로 작동하지 않는다는 것입니다. 거기에 일종의 "별도의 트랜잭션 내부"개체를 만드는 방법이 있나요?

  2. MO와 동일한 데이터를 보유 할 랩퍼 오브젝트를 작성한 후 사용자가 주. 할 때만 MO를 작성하십시오. 이것의 단점은 새로운 수업을 유지해야한다는 것입니다.

  3. MO에서 "placed"와 같은 속성을 만들고 내 검색을 컨텍스트에서 필터링하는 데 사용합니다. 이 하나의 문제는

내가 어떤해야합니까 ... 내가 도메인에 "쓰레기"객체 (즉, 배치되지 않은 명령)으로 끝낼 것 나는 수시로 몇 가지 정리를해야 할 것입니다 다른 선택?

모든 의견을 환영합니다. (이 긴 글을 읽어!)

감사 Gonso

답변

0
관리되는 개체 컨텍스트에서 OrderMO 객체를 생성한다

다음 delete을 사용자가 주문을하지 않기로 결정합니다.
개체가 삭제되기 전에 컨텍스트가 저장되면 다음 저장시 "휴지통"개체가 영구 저장소에서 삭제됩니다 (컨텍스트가 저장되지 않은 경우 "휴지통"개체는 영구적으로 저장되지 않습니다. 저장).
옵션 3에서 제안한대로 주문이 배치되었는지 여부를 결정하는 플래그가 OrderMO 개체에있을 필요가 없습니다. 편집중인 순서를 추적하는보기 컨트롤러에있을 수 있습니다. 다시 말하지만, 삭제 된 개체는 "휴지통"개체가 아닙니다.