2012-02-14 2 views
1

코어 데이터에 저장된 레코드를 몇 가지 문제로 정렬하려고합니다.코어 데이터가있는 복잡한 정렬 기준

1 # 자식 레코드를 기반으로 정렬 조건 :

가 나는 1 개의 엔티티 (아버지와 자녀)이 : M 관계를, 그래서 하나의 아버지 구체적으로, 나는 두 가지 주요 문제를했습니다 더 많은 자녀를 가질 수 있습니다. 나는 더 오래된 어린이의 이름을 기반으로 일종의 아버지 기록을 수행하고 싶습니다. 그래서 기본적으로, 특정 아버지에 대한 아동 기록에 대한 검색을 수행하고 최대 연령의 아동 이름을 검색하고이 정보를 기반으로 일종의 아버지를 수행해야합니다. sortdescriptor를 작성하려면 어떻게해야합니까? 계산에 따라

2 # 정렬 조건 :

나는 나의 실체에 주소 목록을 가지고있다. 각 행에 대해 해당 위도에 대한 열과 경도에 대한 열이 있습니다. 현재 위치를 기준으로이 레코드를 가장 가까운 위치에서 가장 먼 위치로 정렬하고 싶습니다. 거리는 사용자 위치에 따라 다르므로 변수 정보이므로 내 핵심 데이터 테이블에 저장되지 않습니다. 그렇다면이 레코드를 정렬하는 방법은 무엇입니까? 가장 좋은 방법은 무엇입니까?

모든 제안은 정말 감사하겠습니다! 사전에

감사합니다 당신이 얏사 일부를 사용할 수

답변

1

이 결과에 비교 작업 설정?

이 방법

- (NSComparisonResult)compare:(Person *)otherObject { 
    return [self.child compare:otherObject.child]; 
    } 

NSArray *sortedArry; 
sortedArry = [parentArray sortedArrayUsingSelector:@selector(compare:)]; 

BLOCKS

NSArray *sortedArry; 
sortedArry = [parentArray sortedArrayUsingComparator:^(id a, id b) { 
    NSString *first = (Child*)a.name; 
    NSDate *second = (Child*)b.name; 
    return [first compare:second]; 
}]; 

NSSortDescriptor 비교

NSSortDescriptor *sortDescriptor; 
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"child.name" 
              ascending:YES] autorelease]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
NSArray *sortedArry; 
sortedArry = [parentArray sortedArrayUsingDescriptors:sortDescriptors]; 

나는 INT입니다 당신의 대답이 무엇인지 보았습니다. 나는 비슷한 문제가있다.

+1

감사합니다. Nathan,하지만 여전히이 문제를 해결할 수 없습니다. 내가 fetchedresultcontroller를 사용하고 있기 때문에 내 문제는 복잡하다. 올바르게 반환하기를 바란다. 이미 정렬 설명자를 사용하지만 최대 나이까지 필터링 할 수 없습니다. 또한 다른 제안을 위해, 나는 하나 이상의 엔티티에 정렬이나 필터를 적용하는 방법을 모른다. 슬프게도 붙어 ... – yassassin