昨天教完各位如何編輯完資料之後,今天會教各位怎麼排序資料。
先建立一個 sort 然後是 Bool 型別的,然後在建立一個按鈕用來表示資料要從 小/大 開始排序。
ToolbarItem(placement: .navigationBarLeading) {
Button() {
sort.toggle()
} label: {
Image(systemName: "arrow.up.arrow.down")
.fontWeight(.light)
.font(.system(size: 18))
}
}
我們先定義一個變數 sort 是一個 Bool 型態。然後在 init 裡面多打一些程式碼
SortDescriptor 是用來定義如何對一個物件陣列進行排序的工具。在 Swift 中,它通常用於以下目的:
指定排序的依據:通過提供一個鍵路徑(key path)來確定要根據哪個屬性進行排序。
決定排序順序:可以設定升序或降序排列。
init(style: String, sort: Bool) {
self.style = style
self.sort = sort
let predicate = #Predicate<DataModel> { data in
data.style == style
}
var sortDescriptor: [SortDescriptor<DataModel>] {
if sort {
return [SortDescriptor(\DataModel.name)] // 升序
} else {
return [SortDescriptor(\DataModel.name, order: .reverse)] // 降序
}
}
_datas = Query(filter: predicate, sort: sortDescriptor)
}
SwiftData 會使用到的 CRUD 已經學會了,剩下的新增跟刪除給各位想想該怎麼實現,但是基本上都是相同的方式。