【发布时间】:2020-12-28 14:23:41
【问题描述】:
在 Core Data 中,我有大量的“City”对象,每个对象都有一个“country”属性。
我需要一个单独的屏幕来列出 UITableView 中的国家,而不是一个很长的可滚动城市列表。然后用户选择一个国家并被带到一个新屏幕,其中包含该国家的城市。
注意:这是针对游戏的,因此 UITableView 数据源绑定到 SKScene,但我认为这不会有任何区别,因为它适用于其他屏幕。
我已经找到了显示特定国家/地区城市的详细信息屏幕,并且在使用硬编码数据进行测试时效果很好。
我使用的是 Swift 5,所以我的数据调用是这样的:
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "City")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
fetchRequest.predicate = NSPredicate(format: "country = %@", country)
try fetchedResultsController.performFetch()
但是对于另一个屏幕,我不知道如何“分组”国家,这是每个城市的属性,并使分组成为另一个屏幕上 UITableView 的数据源。
a) 我可以创建一个 Country 数组,但是如何让 fetchedResultsController 将 Country 数据返回给 UITableView?
b) 或者,是否可以在 fetchedResultsController 中对对象进行分组或过滤?
c) 或者,是否可以在 fetch 请求中进行类似 SQL 的分组?
谢谢
【问题讨论】:
标签: ios swift uitableview