感谢您的未来帮助!这是我的结构数组:使用Swift对tableView进行排序问题
var malls: [Mall] = [
mall(name:"yagey", distance:""),
mall[name:"tigey", distance:"")
]
覆盖FUNC viewDidLoad中(){ super.viewDidLoad()
var mall = malls[index]
let mallLocate = CLLocation(latitude: mall.latitude, longitude: mall.longitude)
let distanceInMeters = mallLocate.distance(from: coords)/1000
let distanceInMetersString = String(format: "%.1f", distanceInMeters)
for index in 0..<malls.count {
var mall = malls[index] // copy a mall value
mall.distance = distanceInMetersString // change the copy of mall
malls[index] = mall // put the updated mall back into the array
}
malls.sort() { $0.distance < $1.distance }
我如何通过mall.distance排序商场? 请帮帮我,我不明白什么是错:(
这是我的tableView
的tableView
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! EateriesTableViewCell
let mall = mallToDisplayAt(indexPath: indexPath)
let mallLocate = CLLocation(latitude: mall.latitude, longitude: mall.longitude)
print (mallLocate)
cell.distanceLabel.text = distanceInMetersString + "км"
return cell
}
请观看我再次张贴代码,,它不工作太 –
您正在使用相同的值 商场设置中的所有对象商场距离的值。距离= distanceInMetersString //更改商场 的拷贝你应该重新计算每个对象 变种商场=商场[指数]商场距离//复制商场值 让mallLocate = CLLocation(纬度:mall.latitude,经度:mall.longitude) let distanceInMeters = mallLocate.distance(from:coords)/ 1000 let distanceInMetersString = String(format: “%.1f”,distanceInMeters) mall.distance = distanceInMetersString +“км” malls [index] = mall –
我真的很感谢您的帮助,谢谢,但我无法理解我在这里做错了什么,我有问题与地址mall结构,我想..你可以再次看代码?谢谢,真的 当var mall = malls [index] in viewDidLoad –