获取排序记录(核心数据)时出现问题



我有

两个实体记录和分组。

一对多关系,因此每个组可以有多个记录。

在组中 -> (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

最新更新