저는정렬 된 레코드 가져 오기와 관련된 문제 (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 정렬하지만,되고
, 순서 재설정 :(
어레이를 세트에 재 지정하면 다시 정렬되지 않습니다. 그것은 세트가 작동하는 방식이며 정렬되지 않은/정렬되지 않은 것입니다. 그냥 정렬 된 배열을 사용하십시오. – fguchelaar
** 정의에 의한 ** 집합은 정렬되지 않으므로 집합에 결과를 할당하면 항상 ** 정렬되지 않은 컬렉션이 생깁니다. –