2012-05-09 4 views
0

내 UITabBar에서 4 개의 탭을 나타내는 4 개의 UITableView가 있습니다. 그래서 고유 한 사용자 정의 TableViewController 엔티티에 따라 모든 화면을 제어합니다 (CoreData에서) 표시해야합니다. CoreData에서 요소를 가져 오려면 NSFetchedResultsController를 사용합니다.두 엔티티가있는 2 화면 병합

하지만 내 문제는 마케팅 측면에서 동일한 화면에 2 개의 항목을 표시하는 것을 의미하는 2 개의 화면을 병합해야한다는 것입니다. 그래서 나는 2 개의 다른 개체로부터 요소를 가져와야합니다. 또한 추상적 인 엔티티 "Element"가 있습니다.이 엔티티는 각 엔티티를 추상적으로 제어하기 위해 내 TableViewController에서 사용하는 SuperClass입니다.

최상의 솔루션은 무엇입니까?

  • 내가 나의 모델이 그 두 엔티티 (2 엔티티가 조금 다르기 때문에이 문제가)
  • 내가 2 개 개체를 가져 내 NSFetchedResultsController에 말할 수 병합 다시 작성해야합니까? 어떻게?
  • NSFetchedResultsController에게 Element 엔티티를 가져오고 나중에 해당 엔티티를 술어로 알릴 수 있습니까? 어떻게?

감사합니다.

답변

0

나는 마침내 내가 제안하지 않은 해결책을 발견했습니다.

나는 병합하기를 원했던 2를위한 수퍼 클래스 인 새로운 Abstract Entity를 추가했으나 "요소"자식이기도합니다.

그래서 내 ElementListViewController는 여전히 "Elements"를 표시하고 내 화면에 병합 된 Entity를 표시 할 수 있습니다.

이전 모델을 새로운 모델로 마이그레이션하는 중입니다.

이 게시물 언젠가는 도움이 될 수 있습니다 ... 최초의 솔루션에 대한

0

세 가지 중에서 가장 좋은 해결책은 정확한 술어를 사용하여 Element 엔티티를 가져 오는 것입니다. NSfetchRequest는 하나의 엔티티 만 가져올 수 있습니다.

또한 마케팅 요구 사항을 충족시키는 다른 방법을 고려할 것입니다. 두 가지 가져 오기를 수행하고 결과를 결합하는 것일 수 있습니다.

+0

, 방법 만 SubElementA 및 SubElementB을 위해 조건을 알 수 있습니까? 술어에 "kindOf"가 있습니까? – THClem

+0

내가 아는 것은 아니지만 엔티티가 다르기 때문에이를 구분하여 차별화 할 수 있습니다. –