我的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/