2012-09-03 5 views
0

내가 두 컬렉션이 오기 :CoreData - 게시물과 그들의 제거되지 않은 의견

- Post 
- Comment 

Post.comments = [comment1, comment2, ...] 

comment.removed 부울입니다.

모든 게시물을 가져오고 싶지만 제거 된 comments은 제외하고 싶습니다. OneToMany 관계를 반복하지 않고도이를 수행 할 수있는 방법이 있습니까? 여기

내가 뭘하려 : 내가 제대로 문제를 이해한다면

ANY comments.removed == FALSE // Posts that have at least one removed comment 
ALL comments.removed == FALSE // Posts that only have unremoved comments 
(SUBQUERY(comments, $x, $x.removed == FALSE)[email protected] > 0) // Same as the first one 
+0

스칼라 값을 사용하거나 'NSNumber'유형의'removed' 속성입니까? 'FALSE' 나'[NSNumber numberWithBool : NO]; 대신'NO'를 사용하십시오. –

+0

'removed' 속성은 부울입니다. 물론 getter/setter는 CoreData와의 인터페이스를 위해 NSNumber를 사용합니다. 실제로'removed == FALSE'는 다른 쿼리 (예 : 제거되지 않은 게시물을 찾을 때)에서 잘 작동합니다. 필터링하는 동안 하위 태그를 포함하는 방법이 필요합니다. –

+0

그러나 "당신이 시도한 것"이 효과가 있습니까? –

답변

0

, 당신은 모든 "포스트"객체를 좀하고 싶습니다하지만 코어에 정의 된 post.comments 주석의 전체 설정하지 말아야합니다 데이터 저장소가 아니라 삭제되지 않은 주석 집합입니다.

가져 오기 요청의 결과가 관리 객체 컨텍스트의 객체 목록이므로 (필자가 아는 한) 가져 오기 요청으로이 작업을 수행 할 수 없습니다. 인출 요청은 개체가 이 아닌 다른 개체를 관리 대상 개체 컨텍스트에서 반환 할 수 없습니다.

0

CD에서 "제거 된"주석을 검색하지 않으려는 동기를 설명 할 가치가 있습니다. 주석을 사용하는 시간이되면 쉽게 프로그래밍 방식으로 제외 할 수 있습니다. 볼륨이 성능 부담이 될만큼 충분히 큰가요?

어떤 경우 든 각 주석 컬렉션에 바운드 된 NSArrayController을 생성 할 수 있어야하지만 "제거 된"주석을 제외하도록 패치 사전을 설정해야합니다.

자세한 내용은 apple docs on this subject을 참조하십시오.

+0

'Post.comments [removed = FALSE]를 검색 한 후 UITableViewController에서 직접 사용됩니다. 반입 요청으로 하위 항목을 필터링 할 수없는 경우, 'Post.comments'를 제거하고 테이블보기로 보내기 전에 제거 된 주석을 제외하십시오. 공연에 관한 것은 아무것도 아니지만 단지 추한 것 같아요. –

+0

게시물별로 정렬되지 않은 모든 주석을 표보기로 표시하려고하는 것 같습니다 - 특정 게시물에 대한 삭제되지 않은 댓글을 원하십니까? 아니면 OP에서 이것이 IOS 전용인지 명확하지 않습니다. –