Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在tableView中对单元格进行排序?_Ios_Swift_Uitableview_Sorting_Uilabel - Fatal编程技术网

Ios 如何在tableView中对单元格进行排序?

Ios 如何在tableView中对单元格进行排序?,ios,swift,uitableview,sorting,uilabel,Ios,Swift,Uitableview,Sorting,Uilabel,如何在tableView中对单元格进行排序 我有结构和数组: struct Converter { let title: String let kf: Double } let converterAtmo = [ Converter(title: "Атмосферы", kf: 1), Converter(title: "Бары", kf: 365.2422), Converter(title

如何在tableView中对单元格进行排序


我有结构和数组:

struct Converter {
        let title: String
        let kf: Double
    }

    let converterAtmo = [
        Converter(title: "Атмосферы", kf: 1),
        Converter(title: "Бары", kf: 365.2422),
        Converter(title: "Мм.рт.ст.", kf: 11.999998),
        Converter(title: "Паскали", kf: 525948.77),
        Converter(title: "Фунт./кв.дюйм", kf: 52.177457)]

CellAtRow
func中:

let cell1 = tableView.dequeueReusableCell(withIdentifier: "resultCell") as! resultTableViewCell

            let item = converterAtmo[indexPath.row]

            cell1.nameResult.text = item.title
            cell1.labelResult.text = String(item.kf * atmosfera)


            return cell1

最后,
@IBAction

 @IBAction func sortAlphabet(_ sender: Any) {

        let itemSort = converterAtmo

        itemSort.sorted { $0.title < $1.title }

        self.tableView2.reloadData()

    }
@IBAction func sortAlphabet(uu发送方:任意){
让itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}
self.tableView2.reloadData()
}
但它不起作用


我的问题是什么?

首先,您必须将
converterAtmo
声明为
var
,而不是
let
,以便修改它

然后替换:

itemSort.sorted { $0.title < $1.title }

首先,您必须将
converterAtmo
声明为
var
,而不是
let
,以便修改它

然后替换:

itemSort.sorted { $0.title < $1.title }
在:

let itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}
实际上,您并没有对数组进行排序。您正在“itemSort”中复制它,而没有对它执行任何操作。

在:

let itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}

实际上,您并没有对数组进行排序。您正在“itemSort”中复制它,而没有对它进行任何操作。

这在代码之外是不容易复制的。这在代码之外是不容易复制的。
@IBAction func sortAlphabet(_ sender: Any) {
    // `sort` method will sort the converterAtmo (`sorted` method leaves the original 
    // array untouched and returns a sorted copy)
    self.converterAtmo.sort { $0.title < $1.title }
    self.tableView2.reloadData()
}
let itemSort = converterAtmo
itemSort.sorted { $0.title < $1.title }