0

저는정렬 된 레코드 가져 오기와 관련된 문제 (CoreData)

개의 엔티티 레코드와 그룹을 가지고 있습니다.

일대 다 관계이므로 각 그룹은 여러 레코드를 가질 수 있습니다. 그룹

->(relationship:arrRecord, Destination:record, Inverse:recordGroup)

레코드 ->(relationship:recordGroup, Destination:group, Inverse:arrRecord)

I 그룹과 각각의 기록을 가져올 수 있어요. 그러나 레코드 필드 '이름'별로 정렬 된 그룹 및 개별 레코드를 가져올 수 없습니다.

코드 :

let fetch: NSFetchRequest = NSFetchRequest(entityName: "group") 
if let fetchGroups = APP_DELEGATE.managedObjectContext!.executeFetchRequest(fetch, error: nil) as? [group] 
{ 
for group in fetchGroups 
    { 

    let sortDesc = NSSortDescriptor(key: "name", ascending: true) 
    let arrSorted = group.arrRecord.sortedArrayUsingDescriptors([sortDesc]) 
    print("arrSorted === \(arrSorted)") // sorted by name 

    group.arrRecord = NSSet(array: arrSorted) 
    print("NSSet(array: group.arrRecord) === \(group.arrRecord)") //not sorted by name 

} 
} 
NSSet로 다시 변환 할 때 arrSorted 정렬하지만,되고

, 순서 재설정 :(

+1

어레이를 세트에 재 지정하면 다시 정렬되지 않습니다. 그것은 세트가 작동하는 방식이며 정렬되지 않은/정렬되지 않은 것입니다. 그냥 정렬 된 배열을 사용하십시오. – fguchelaar

+1

** 정의에 의한 ** 집합은 정렬되지 않으므로 집합에 결과를 할당하면 항상 ** 정렬되지 않은 컬렉션이 생깁니다. –

답변

1

다음은이 경우 NSSet (또는 NSOrderedSet에 관계 결과, '많은 사람' 확인 정렬 된 컬렉션을하지 않은) '주문'.

당신은이 NSArray 정렬 얻을 - (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors를 사용할 수 있습니다.

+0

감사합니다. 이미 질문을했습니다. – BaSha

+1

세트가 정렬되지 않으며 관리 대상 객체 관계가 정렬 된 것으로 정의되지 않으므로 세트에 다시 할당하면 분류가 표시되지 않습니다. 배열을 사용하는 데있어 잘못된 점은 무엇입니까? 정렬 된 정보로 무엇을하고 싶습니까? – jrturton

+0

마지막으로 정렬 된 배열로만 관리됩니다. 감사 – BaSha