핵심 데이터 모델을 올바르게 설정했다면 카테고리 엔티티에서 카테고리 엔티티로의 일대일 관계와 항목에서 카테고리에 대한 역대 관계가 있습니다. 또한 일대일 관계에 대한 "계단식"삭제 규칙과 일대일 관계에 대한 "무효화"삭제 규칙이 있습니다.
이렇게 가정하면 Item 객체를 삽입 할 때마다 범주 관계를 설정하면 항목이 해당 범주에 자동으로 삽입됩니다. 항목을 삭제하면 해당 범주에서 항목이 자동으로 제거됩니다.
범주 측면에서 범주를 제거하면 해당하는 모든 Item 개체가 자동으로 제거됩니다.
따라서 항목을 가져올 때 각 Item 객체에 대해 해당 Category 객체를 이미 가져 왔습니다. 너는 다른 일을 할 필요가 없다. 기본적으로 가져 오기 중에 Category 객체를 실제로 검색하지는 않습니다. 대신 객체에 처음 액세스하려고 시도 할 때 오류가 발생하고 그 시점에 객체가 검색됩니다. 방금 가져온 Item 객체에 저장된 Category 객체를 즉시 사용하지 않으려는 경우 성능이 향상됩니다. 당신이 범주 객체에게 당신이 항목을 가져 오는 거의 모든 시간을 사용하려는 경우, 당신은 당신이 지금 오류를 원하고 당신이 당신의 분류 관계를 프리 페치 요청하는 것이 그 핵심 데이터를 이야기하는 NSFetchRequest 방법
- (void)setReturnsObjectsAsFaults:(BOOL)yesNo
- (void)setRelationshipKeyPathsForPrefetching:(NSArray *)keys
를 사용해야합니다.
가져 오기는 관리 객체 (MO)를 검색하는 데 사용됩니다. 질문을 명확히 할 수 있습니까? CategoryEntity MO 인스턴스를 ItemEntity MO 인스턴스에 지정하는 방법을 묻고 있습니까? 또는 CategoryEntity 할당이없는 ItemEntity MO 목록을 가져 오는 방법을 묻고 특정 CategoryEntity MO를 할당하는 방법을 묻는 중입니까? –
예, 제 질문에 명확하지 않았습니다. 새로 생성 된 ItemEntity MO 인스턴스에 CategoryEntity MO 인스턴스를 지정하는 방법을 묻습니다. 모든 ItemEntity MO는 적절한 CategoryEntity MO에 할당되어야합니다. 카테고리를 더 빨리 참조하기 위해 사전을 사용하여 만들었지 만 더 나은 아키텍처는 환영합니다. – johnl