2017-05-15 29 views
0

작동하지 게터 요청을 가져오고 내 sortDescriptors 설정 :이 메소드를 호출하지 디스크립터가NSManagedObject의 정의는 내가 그 재산의 반환 값에 대한 몇 가지 계산을 원하기 때문에 내가 속성 중 하나에 대한 게터를 무시하고 <code>NSManagedObject</code>이 NSSortDescriptor

// Initialize Fetch Request 
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"ZSSCDPerson"]; 

// Sorting 
[request setSortDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"distanceFromCurrentUserLocation" ascending:ascending]]]; 

정렬합니까?

+0

이 정보가 유용할까요? http://stackoverflow.com/questions/17853496/nssortdescriptor-on-transient-attribute-for-nsfetchedresultscontroller – danh

+0

SQLite 데이터베이스 저장소 유형? 아니요. 가져 오기 요청이 SQL로 변환되고 NSManagedObject 하위 클래스가 사용되지 않습니다. – Willeke

+0

예, SQLite 데이터베이스 저장소 유형입니다. –

답변

0

저장되지 않은 값에 대한 반입 요청을 정렬 할 수 없습니다.

두 가지 옵션이 있습니다.

  1. 값을 계산하고 저장하려면 현재 사용자 위치가 변경 될 때마다이 값을 업데이트해야합니다. 사용자 위치와 같이 많이 바뀌는 무언가에 이상적이지 않을 수도 있습니다.

  2. 가져 오기 및 정렬. 모든 객체를 배열로 가져온 다음 메모리에서 정렬합니다.

+0

나는 그 다음 가져 오기를 피하려고 노력했다. 프라이빗 컨텍스트를 업데이트 한 다음 주 스레드 컨텍스트와 병합하는 것이 더 오래 걸리는 이유. –

+0

데이터의 하위 집합 (즉, 위치 정보)을 가져 와서 필요한 순서를 찾은 다음 해당 정보를 사용하여 전체 가져 오기를 시도 할 수 있습니다. – trapper

+0

계산에 필요한 속성을 가져 오는 것입니까? 각 결과에서 위치 거리 계산을 수행하기 위해 이러한 결과를 반복해야합니다. –