swift - 如何修复 viewDIdLoad 中的 indexPath 错误?

标签 swift sorting struct viewdidload indexpath

我对 indexPath.row 有疑问。在 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 没有像 cellForRowAt 那样传递 IndexPath 参数。

IndexPath 用于标识要构建或选择的当前单元格。在 viewDidLoad 中不需要它。您在数组中有 4 个转换器,并且可以在需要时仅通过使用其索引来选择任何您喜欢的转换器。

关于swift - 如何修复 viewDIdLoad 中的 indexPath 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186416/

相关文章:

swift - 单击 StatusBar 项目时弹出一个 View

ios - 类型 NSArray 不能被隐式向下转换

ios - NSData 到 NSNumbers 的 NSArray?

android - OrderByKey 工作正常,但 OrderByChild 在 firebase 实时数据库中给出了意想不到的结果

linux - 文件排序后未排序

ios - 两个 UIViewController 之间的 UIPageViewController

javascript - 按下一篇文章对文章列表进行排序

c - 错误 : request for member 'Name' in something not a structure or union

c++ - 使结构的所有数学运算符都操作同一个成员

c++ - 最小化总结构内存