我有一個這樣的結構:
import Foundation
struct Product: Identifiable {
var name: String
let expirationDate: Date
let id = UUID()
}
和這樣的串列:
import SwiftUI
struct ContentView: View {
@Binding var products: [Product]
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .medium
return formatter
}
var body: some View {
VStack {
List {
ForEach(products) { product in
HStack {
Text(product.name)
Spacer()
Text(self.dateFormatter.string(from: product.expirationDate))
}
}
}
}
我怎樣才能對這個串列進行排序,以便從現在開始最近的到期日期位于串列的頂部?
我什至不知道如何從產品陣列中獲取過期日期。我將不勝感激任何幫助。先感謝您!
uj5u.com熱心網友回復:
您需要根據以下內容對陣列進行排序timeIntervalSinceNow:
$0.expirationDate.timeIntervalSinceNow < $1.expirationDate.timeIntervalSinceNow
編輯(感謝Martin R)您可以Date直接比較:
$0.expirationDate < $1.expirationDate
所以在你看來,ForEach(products)變成:
Foreach(products.sorted(by: {$0.expirationDate < $1.expirationDate}))
uj5u.com熱心網友回復:
他們最近添加
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534970.html
標籤:数组迅速排序迅捷
