首页 > 解决方案 > 何时调用在 Swift 4 中对 Array 进行排序的函数?

问题描述

我制作了一个对数组进行排序并重新排序 TableView 的函数(我关注了这篇文章)。我通过 API 填充数组。

何时何地最好调用排序函数?当我从 ViewDidLoad 或 ViewDidAppear 调用它时,数组仍然是空的,所以什么也没有发生。

func sort(){

    self.myArray = myArray.sorted(by: {$0.rank < $1.rank })
    self.tableView.reloadData()

}

标签: iosswifttableview

解决方案


我不知道你使用这种排序是为了什么,所以这可能没有用,但你可以在顶部添加一个 nil 检查,如果数组为 nil,则初始化一个新的空数组。

func sort(){
    if self.myArray == nil {
        self.myArray = [YourArrayType]()
    }
    self.myArray = myArray.sorted(by: {$0.rank < $1.rank })
    self.tableView.reloadData()

}  

您还可以声明数组可选(private var myArray: [Your ArrayType]?)或在声明时初始化(private var myArray = [YourArrayType]())。第一个允许您使用 a 调用数组上的任何方法,?如果数组为 nil,它将不会执行,另一个确保数组不是 nil 而只是空的。


推荐阅读