2

我对使用 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 对其进行排序。

谢谢你的帮助!

尼科

4

0 回答 0