gpt4 book ai didi

ios - 确定排序后数组是否发生变化

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:32 25 4
gpt4 key购买 nike

我想确定是否应该重新加载 TableView。当它出现时,我会根据名称进行简单排序。

我可以使用数据源中或多或少的项目或数据源中需要重新排序单元格的更改项目继续返回此 View 。即,名称从 Foo 更改为 Bar,因此顺序更改。

如何判断使用Swift排序方法后列表是否发生变异?我正在寻找这样的东西

let orderDidChange = clientList.sort({ $0.clientName < $1.clientName })

这是我当前的代码

override func viewWillAppear(animated: Bool) {

super.viewWillAppear(animated)

let originalList = clientList
orderHasChanged = false

clientList.sort({ $0.clientName < $1.clientName })
clientList.sort({ $0.isBase > $1.isBase })

orderHasChanged = clientList != originalList

if orderHasChanged {
// always enters here
println("changed")
tableView.beginUpdates()
tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation: UITableViewRowAnimation.Fade)
tableView.endUpdates()
}
else {
println("same do nothing")
}

}

最佳答案

实际上,您可以使用 == 运算符检查旧数组是否等于排序后的数组。如果两个数组包含相同的数据,但顺序不同,则它们不相等。

例如,

let bar: [String] = ["Hello", "World"]
let foo: [String] = ["Hello", "World"]

//this will print "true"
//bar and foo contain the same data in the same order
print(bar == foo)


let bar: [String] = ["Hello", "World"]
let foo: [String] = ["World", "Hello"]

//this will print "false"
//bar and foo contain the same data, but in a different order
print(bar == foo)

所以,这样的事情会起作用

let originalList = clientList
clientList.sort({ $0.clientName < $1.clientName })

let orderHasChanged = clientList != originalList

关于ios - 确定排序后数组是否发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com