我有
两个实体记录和分组。
一对多的关系,所以每组可以有多个记录。 in group - > (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时,顺序重置:(
答案 0 :(得分:1)
对许多人来说'关系会生成NSSet
(或NSOrderedSet
,如果您已选中' ordered'),这不是已排序的集合。
您可以使用- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
获取已排序的NSArray
。