我的TableViewController类中有一条奇怪的错误消息

class MenuTableViewController: UITableViewController {
fileprivate var menuItems = [MenuItem]()

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.register(UINib(nibName: "MenuItemTableViewCell", bundle: nil), forCellReuseIdentifier: CELL_MENU_ITEM)
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return menuItems.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: CELL_MENU_ITEM, for: indexPath) as! MenuItemTableViewCell

    // this line throws the error message
    if let menuItem = self.menuItems[indexPath.row].getTitle() as [MenuItem] {
        cell.itemTitleLabel.text = menuItem
    }


    return cell
}

func setMenuItems(menuItems: [MenuItem]) {
    self.menuItems = menuItems
}
}

我完全不知道那个错误是什么意思。还有一些人在输入inout时遇到这个问题,但是他们用“=”而不是“=”来处理错误,诸如此类。通过在一个完成函数的另一个类中设置menuItems的值。但如果我把它从那里移走,我还是会犯这个错误。

最佳答案

由于menuItems声明为具体的非可选类型,因此不需要类型转换或可选绑定。

let menuItem = self.menuItems[indexPath.row]
cell.itemTitleLabel.text = menuItem.getTitle()

错误消息可能会误导您。您试图将(假定的)String转换为[MenuItem]

关于ios - 无法下标'inout [MenuItem]'类型的值(也称为'inout Array <MenuItem>'),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40972488/

10-10 21:34