2012-10-09 3 views
0

NSDefriptor 결과를 정렬하려면 sortDescriptor와 함께 사용하고 있습니다. 나는 이것을하고있다.NSSortDescriptor 작업

  1. Atacker
  2. 골키퍼
  3. 윙어
  4. 수비수

순간 그 그룹의 모든 위치의 seperatyl에서 :

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Team"]; 
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"position" ascending:YES]]; 

위치는 4 개 개의 값이 될 수 있습니다. 그래서 먼저 모든 공격자들, 그리고 모든 골키퍼들, 그리고 모든 수비수들, 마침내 모든 윙어들. 지금 달성하고 싶은 것은 순위의 순서를 변경하는 것입니다. 순위의 순서가 있어야합니다.

  1. 먼저 모든 골키퍼
  2. 둘째 수비수
  3. 셋째 모든 윙어
  4. 그리고 마지막으로 모든 윙어

누구 내가 그렇게 할 수있는 방법을 생각이있어?

미리 감사드립니다.

답변

2

지저분한 방법은 각 플레이어 유형을 나타내는 여분의 정수 열을 추가하고이를 대신 정렬하는 것입니다.

편집 : 이것은 일을하기 때문에 꼭 '지저분한'방법은 아니지만 내가 제안한 유일한 이유는 추가 물건을 추가해야만 플레이어의 종류를 알 수 있기 때문입니다. 그럼에도 불구하고 합리적인 방법입니다.

+0

나는 더 나은 방법이 있다고 생각합니다. 그러나 그렇지 않다면 나는 이것을 분명히 살펴볼 것입니다. – Steaphann

+0

이것은 특별히 우아한 것처럼 보이지 않지만 작동합니다. 정수가 있다면 배열을 추가하여 이름을 가져올 수 있습니다. –

+0

이건 지저분한 해결책이라고 생각하지 않습니다 (+1). SQLite 저장소에서 가져 오기 요청은 데이터베이스의 특성으로 저장된 키에 대해서만 정렬 할 수 있습니다. 따라서 사용자 지정 정렬 순서에 대한 보조 열을 추가하는 것이 좋습니다. - 유일한 대안은 결과를 가져온 후에 정렬하는 것입니다. –

0

모든 개체를 저장하는 관계가있는 경우 준비된 블록이있는 NSSortDescriptors를 사용하여 NSSet 양식을 정렬하는 도우미 메서드를 준비 할 수 있습니다. 또는 모든 객체를 가져 와서 정렬 할 수 있습니다.

+0

모든 플레이어를 저장하는 엔티티 만 있습니다. 관계 없음 – Steaphann

+0

그런 다음 가져 오기를 수행하여 모든 객체를 가져오고 executeFetchRequest가 반환 한 배열을 정렬 할 수 있습니다. – tdubik

관련 문제