在快速的 UIKit 中
我正在嘗試根據 API 中的字串變數在 Table View 中排列資料
但它給了我一個錯誤
var arrTable = [ModelApiData]()
override func viewDidLoad() {
super.viewDidLoad()
for i in arrTable {
arrTable.sorted(by: i.url)
}
arrTable.sorted(by: ModelApiData)
}
name (url) 我想在上面排列單元格
{
"id": 130,
"user_id": 1,
"title": "test Sort 2",
"details": "ESFFESFSD",
"image_path": null,
"youtube_link": null,
"font_size": 19,
"algiment": "right",
"color": "0 0 0 1",
"url": "2",
"category_id": 2
},
錯誤是
Cannot convert value of type 'String?' to expected argument type '(ModelApiData, ModelApiData) throws -> Bool'
另外,如果我使用這種方法,我無法從 API 中確定
arrTable.sorted(by: ModelApiData)
uj5u.com熱心網友回復:
arrTable.sorted(by: {$0.url > $1.url})
選擇您自己的升序或降序排序方式
arrTable.sorted(by: {$0.url > $1.url})
我會建議你做排序功能
func sortingData(array:[ModelApiData]) -> [ModelApiData] {
return array.sorted(by: {$0.url > $1.url})
}
然后將其用于部分中的專案數和
sortingData(array:arrTable).count
并在行的單元格中
let data = sortingData(array:arrTable)[indexPath].row
cell.textLabel.text = data.title
uj5u.com熱心網友回復:
由于以下幾個原因,您的代碼沒有意義:
- 該錯誤告訴您不能僅通過傳遞型別進行排序。您必須指定一個或多個屬性并應用
<運算子。 sorted回傳排序后的陣列,它不會就地排序。- 回圈排序是沒有意義的。
要按url您必須撰寫的屬性對陣列進行排序
override func viewDidLoad() {
super.viewDidLoad()
arrTable.sort(by: {$0.url < $1.url})
}
旁注:盡可能避免可選項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/361030.html
