【问题标题】:Type Any don't have member count, two dimensional array类型 Any 没有成员计数,二维数组
【发布时间】:2020-06-02 09:33:08
【问题描述】:

嗨,我想制作一个如下图所示的视图,所以我尝试用 UITableViewCell 和一个字符串制作一个二维数组。由于它是 Any 类型,因此编译器会抱怨“Type Any 没有 count 和 subscript 的成员”。我的方法对吗?使这个视图像下图一样,还是我应该一个一个地创建?

这是我的代码

var tableItems = [
        [ProgressCell.self],
        ["Information", "Address", "Password"],
        ["Help", "Term and Condition", "Privacy"],
        [SignOutCell]
    ] as Any

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return tableItems[section].count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath)

    let name                = tableItems[indexPath.section][indexPath.row] as! Int

    cell.textLabel?.text    = name
    cell.textLabel?.font    = UIFont(name: "NunitoSans-Regular", size: 16)
    cell.accessoryType      = .disclosureIndicator

    return cell
}

【问题讨论】:

    标签: ios arrays swift uitableview multidimensional-array


    【解决方案1】:

    我相信您想定义一个包含Any 项目的数组,它看起来像这样[[Any]]

    将您的代码更新为以下内容:

    var tableItems = [
        [ProgressCell.self],
        ["Information", "Address", "Password"],
        ["Help", "Term and Condition", "Privacy"],
        [SignOutCell]
    ] as [[Any]]
    

    正如@fogmeister 在下面的评论中所建议的,您不应该真正使用Any,并且需要做进一步的工作来正确定义类型。

    【讨论】:

    • 你甚至可以使用[[Any]],因为它是一个二维数组。不过,我建议您根本不应该使用Any,并且需要对数据模型进行进一步的工作。
    • true @Fogmeister,只是想让 OP 启动并运行
    • 绝对 :-) 婴儿第一步。 ?? 只需添加评论作为可能的建议。
    • 嘿,谢谢@PaulFitzgerald,您的代码可以正常工作,就像您建议的那样,我认为我需要更改 tableView 部分单元格的结构。谢谢你们的帮助:)
    【解决方案2】:

    以下代码对我有用。此外,SignOutCell 还需要self。请同时查看随附的链接。

    var tableItems = [
        [ProgressCell.self],
        ["Information", "Address", "Password"],
        ["Help", "Term and Condition", "Privacy"],
        [SignOutCell.self] as [Any]
      ]
    

    https://i.stack.imgur.com/QexjG.png

    【讨论】:

      猜你喜欢
      • 2021-08-20
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多