我对使用 FetchedResults 作为数据源的表中的 sortOrder 有疑问。目前我正在使用 XCode 13 beta,部署目标 macOS 12.0。这是我的代码:
struct MyTable: View {
@FetchRequest(fetchRequest: Person.fetchRequest(), animation: .default)
var people: FetchedResults<Person>
@State private var sortOrder = [KeyPathComparator(\Person.familyName)]
@State private var selectedPersonID: Person.ID?
var body: some View {
Table(people, selection: $selectedPersonID, sortOrder: $sortOrder) {
TableColumn("Nachname", value: \.familyName)
TableColumn("Vorname", value: \.givenName)
TableColumn("Adresse", value:\.address)
TableColumn("Telefon 1", value:\.phone1)
TableColumn("Telefon 2", value:\.phone2)
}
.onChange(of: sortOrder) {
// --> PROBLEM: how can I implement the sortOrder with NSSortDescriptor ? <--
}
}
}
我的问题是:如何在.onChange
-Method 中实现排序功能?第一次尝试使用people.sort(using: $0)
失败。我还尝试将其解析fetchedResults<Person> people
为数组:
var peopleArray: [Person] {
Array(people)
}
但是后来我得到了一个不可变的值peopleArray
,我无法使用.sort(using:)
-Method 对其进行排序。
谢谢你的帮助!
尼科