我有
两个实体记录和分组。
一对多关系,因此每个组可以有多个记录。
在组中 -> (relationship:arrRecord, Destination:record, Inverse:recordGroup)
在记录中 -> (relationship:recordGroup, Destination:group, Inverse:arrRecord)
我能够获取组和相应的记录。但是我无法获取按记录字段"名称"排序的组和相应记录。
法典:
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
}
}
arrSorted正在排序,但是当转换回NSSet时,顺序重置:(
"To Many"关系会导致NSSet
(或NSOrderedSet
,如果您选中了"ordered"),这不是一个排序的集合。
您可以使用- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
获取排序NSArray
。