2011-11-26 4 views
18

코어 데이터 모델링을 처음 접했고 일대 다 관계가 작동하는 방식을 이해하는 데 어려움을 겪고 있습니다.CoreData - 일대 다 모델 관계가 일대일로 발생합니다.

나는 이라는 상위 엔티티를 가지고 있는데, 이는 Comment 엔티티의 여러 인스턴스를 가질 수 있습니다. 나는 이것을 다음과 같이 모델링했다. Comments에서 Task과의 관계는 task이고 Task 엔티티는 대상이다. Taskcomments이라는 관계가 있습니다. Comment을 대상으로하고 두 관계가 서로 반대입니다.

역 정의를 지정하지 않으면 경고 또는 오류 메시지가 표시됩니다. 이 방법으로 모델링하는 동안 나는 Task이라는 두 번째 주석을 작성하면 첫 번째 주석이 대체된다 (일대일 관계).

코어 데이터 모델에이 관계가 하나의 많은 주석을 허용한다는 올바른 방법은 무엇입니까 Task?

또한 CoreData가 자체 키를 관리하는 것처럼 보이기 때문에 NSPredicate을 작성하여 주어진 Task에 대한 모든 주석을 검색하는 방법은 무엇입니까?

의견을 보내 주셔서 감사합니다.

당신의 Task 기업의 plural 옵션을 설정하여 .xdatamodeled에서 선택하고 당신이 볼 수 있어야합니다 commentsTask 기업의 relationship 속성을 선택하는 데 필요한 모든의

답변

42

먼저이 enter image description here

plural있다 옵션을 확인하십시오. 생성 된 클래스를 사용하는 경우 NSManagedObject을 다시 작성해야하며 사용중인 sqlite 저장소를 삭제하고 다시 작성해야하므로 새 스키마가 이전 스키마와 다르지 않다고 불평하지는 않습니다.

일대일 관계가 있는지 확인하려면 Task 엔티티가 NSSet이 아닌 comments 유형의 comments 속성을 가지고 있어야합니다. Comments.

주어진 작업에 대한 모든 설명을 검색하려면 해당 작업의 NSSet(comments) 속성을 반복해야합니다.

+0

감사합니다. 나는이 옵션들이 가능하다는 것을 몰랐다. 항상 오른쪽 창을 닫은 상태에서 내 모델을 편집했을 것입니다. 현재 Core Data가 setter 및 getters (및 관계)를 명명하는 방법을 테스트하는 것 이외에 생성 된 클래스를 사용하지 않습니다. – tutiplain

관련 문제