【发布时间】:2020-05-30 06:05:32
【问题描述】:
我的 CoreData 模型中有 3 个实体。Category 、Subcategory 、inventory.inventory 连接到子类别和使用关系连接到类别的子类别。所以当我想要获取库存和子类别时,我会使用类别数据。所以我的问题是我想按字母顺序对所有三个实体数据进行排序。
class func getAllCategoriesObject() -> [DBCategories]?
{
let context = getContext()
let fetchRequest:NSFetchRequest<DBCategories> = DBCategories.fetchRequest()
fetchRequest.returnsObjectsAsFaults = false
do{
let fetchedData = try context.fetch(fetchRequest).sorted(by: { (objCategory1, objCategory2) -> Bool in
(objCategory1.subcategories?.allObjects as? [DBSubCategories] ?? []).sorted { (objSubCategory1, objSubCategory2) -> Bool in
(objSubCategory1.inventories?.allObjects as? [DBInventories] ?? []).sorted { (objInventory1, objInventory2) -> Bool in
return objInventory1.title?.capitalized ?? "" < objInventory2.title?.capitalized ?? ""
}
return objSubCategory1.title?.capitalized ?? "" < objSubCategory2.title?.capitalized ?? ""
}
return objCategory1.title?.capitalized ?? "" < objCategory2.title?.capitalized ?? ""
})
return fetchedData
}
catch
{
print( error.localizedDescription)
}
return []
}
我试过上面的代码,但没有得到输出。
【问题讨论】:
标签: ios arrays swift core-data higher-order-functions