2011-01-14 5 views
0

UITableView에 표시된 데이터를 숫자로 정렬하려고합니다.NSSetchedResultsController에 대한 NSSortDescriptor와의 숫자 정렬

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]; 

가 지금은이 같은 수치이 정렬 블록을 사용하고 싶습니다 :

나는 그런 종류의 설명을 사용하는 전

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) { 
    return [((NSString *)obj1) compare:(NSString *)obj2 options:NSCaseInsensitiveSearch | NSNumericSearch]; 
}]; 

을하지만 데이터 incorectly 일으키는 충돌을 정렬 NSFetchedResultsController에 섹션 이름이 있습니다. 그래서 저는 이전의 정렬을 비교기 블록으로 바꾸려고 노력했습니다. 단지 문제가 숫자 비교에 의해 야기되지 않았는지 확인하기 위해서였습니다. ...

어떤 아이디어를

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) { 
    return [((NSString *)obj1) caseInsensitiveCompare:(NSString *)obj2]; 
}]; 

같은 오류가 발생할 그들은 첫 번째 방법이했던 것과 같은 방식으로 데이터를 정렬하지 않을 이유가 표시되지 않습니다 : 문제는 그 선이 있다는 것입니다 ?

답변

1

가져 오기 요청에서 작동하는지 모르겠지만 @selector(localizedStandardCompare:)으로 정렬 해 볼 수 있습니다.

+0

이것은 또한 섹션 이름과 충돌을 일으키지 만, 월요일에 이것으로 더 많은 테스트를 수행 할 것입니다. 마지막 정렬 설명자가 첫 번째 설명 자와 다른 이유는 아직도 이해가 가지 않습니다 ... – edziubudzik

관련 문제