【发布时间】:2018-07-05 08:17:53
【问题描述】:
我对@987654321@ 有疑问。在cellForRowAt 里面这行完美:
let cell = tableView.dequeueReusableCell(withIdentifier: "MenuViewCell", for: indexPath) as! MenuViewCell
let item = converters[indexPath.row]
cell.ConverterName.text = item.converterName
cell.converterImage.image = item.converterImg
但是当我尝试在 viewdidload 中实现它时,我遇到了一个错误: "使用未解析的标识符 'indexPath'"
和代码:
struct converter {
let converterName: String
let converterImg: UIImage
}
var converters = [converter(converterName: "Converter of time", converterImg: #imageLiteral(resourceName: "time")),
converter(converterName: "Converter of pressure", converterImg: #imageLiteral(resourceName: "davlenie")),
converter(converterName: "Converter of speed", converterImg: #imageLiteral(resourceName: "skorost")),
converter(converterName: "Converter of distance", converterImg: #imageLiteral(resourceName: "dlinna"))]
override func viewDidLoad() {
super.viewDidLoad()
let item = converters[indexPath.row]
let itemSort = item.converterName
self.converters = itemSort.sorted { $0 < $1 }
self.tableView.reloadData()
}
【问题讨论】:
-
在
viewDidLoad方法中你不会得到indexPath.row。为什么在viewDidLoad方法中需要它?你有什么要求? -
@DharmeshKheni 我制作了一个多语言应用程序,所以我想在加载 ViewController 时按字母顺序对单元格进行排序
-
如果您想根据在 viewdidload 中使用的名称对
Converters进行排序converters = converters.sorted(by: { (obj1, obj2) -> Bool in obj1.converterName > obj2.converterName }) -
行得通!谢谢!
标签: swift sorting struct viewdidload indexpath