2014-10-17 2 views
0

나는 다수의 포인트를 가진 관리 대상 개체 둘러보기를 가지고있다. 포인트를로드하여 테이블에 표시 할 때 데이터 tour.points로 사용합니다.관계의 자동 검색 및 자동 정렬

각 점에는 나타나는 순서를 나타내는 '레벨'필드가 있습니다. tour.points를 point.level에 따라 자동으로 정렬하도록하려면 어떻게해야합니까?

정렬 설명과 함께 별도의 가져 오기를 수행해야합니까, 아니면 직접적인 방법입니까?

답변

2

코어 데이터로 테이블 뷰를 채우는 가장 좋은 방법은 NSFetchedResultsController입니다. FRC에는 술어와 정렬 설명자를 첨부 할 수있는 반입 요청이 있습니다.

"코어 데이터 사용"을 확인할 때 Xcode 템플릿에서 복사 할 수있는 샘플 코드가 있습니다.

가져온 결과 컨트롤러 작성 방법에서 조건 자 및 정렬 설명자를 추가하십시오. Tour과 to-one 관계가있는 Point이라는 엔티티를 가져 오는 것으로 가정합니다.

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"tour = %@", tourObject]; 
fetchRequest.sortDescriptors = @[[NSSortDescriptor 
    sortDescriptorWithKey:@"level" ascending:YES]]; 
+0

감사합니다. JPA와 같이 '주석 달기'가 가능한지 궁금합니다. 하지만 추가 요청은 문제가 아니며, 어쨌든 기능이 이미 있습니다. –

+0

이 컨텍스트에서 "주석 달기"를 이해하지 못합니다. – Mundi

+0

JPA에서 @OrderBy ("성 ASC")와 같은 필드에 주석을 달 수 있으므로 호출시 필드가 자동으로 정렬됩니다. 저장자는 추가 쿼리를 수행해야합니다. –

0

내 경험에 비추어 볼 때, 당신은 별도의 정렬을해야 할 것이라고 생각합니다. 일의 참고로 당신은 필터링 배열에 대한 자 NSPredicate으로 수행 할 수 있습니다

http://www.infragistics.com/community/blogs/stevez/archive/2013/10/21/ios-objective-c-filtering-a-nsarray-using-nspredicate.aspx

난 당신이 이런 종류의 일이 될 것입니다해야 할 것 기대 :

NSSortDescriptor *level = [[NSSortDescriptor alloc] initWithKey:@"level" ascending:YES]; 
NSArray *pointSortedByLevel = [results sortedArrayUsingDescriptors:[NSArray arrayWithObjects:level, nil]]; 

이있는 NSArray 결과입니다 개체에서 발견 된 점의 개수