首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法下标'inout [MenuItem]‘(又称'inout Array<MenuItem>')类型的值

无法下标'inout [MenuItem]‘(又称'inout Array<MenuItem>')类型的值
EN

Stack Overflow用户
提问于 2016-12-05 10:49:56
回答 3查看 1.1K关注 0票数 0

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

代码语言:javascript
复制
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的值。但是如果我把它从那里移除,我仍然会得到这个错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-05 10:54:47

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

代码语言:javascript
复制
let menuItem = self.menuItems[indexPath.row]
cell.itemTitleLabel.text = menuItem.getTitle()

错误消息可能有误导性。您正在尝试将(推定的) String转换为[MenuItem]

票数 1
EN

Stack Overflow用户

发布于 2016-12-05 10:52:28

也许你想检查一下MenuItem?就像这样:

代码语言:javascript
复制
if let menuItem = self.menuItems[indexPath.row] as MenuItem {
    cell.itemTitleLabel.text = menuItem.getTitle()
}

并且使用[MenuItem]类型声明集合,因此订阅将返回非可选值,您可以删除iflet检查并使用:

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

票数 1
EN

Stack Overflow用户

发布于 2017-10-04 19:49:49

我错过了在我的自定义结构中导入uikit并得到一个类似的错误。希望它能帮助别人在这里读书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40972488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档