【问题标题】:Assigning value to array gives an error [duplicate]为数组赋值会出错[重复]
【发布时间】:2018-08-27 16:58:44
【问题描述】:

我知道这里有很多与此相关的答案,我经历了很多,但我仍然没有意识到我做错了什么。

UITableViewCell 被点击时,我试图将一个数组传递给另一个UIViewController。我所要做的就是将messageLog.transferedUsers[0] 替换为user。虽然不起作用。

class MessageVC: UIViewController {

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let user = users[indexPath.row]
        print(user) // prints the user object
        let storyboard = UIStoryboard(name: Storyboards.messages, bundle: Bundle.main)
        let messageLog = storyboard.instantiateViewController(withIdentifier: "MessageLogVC") as! MessageLogVC
        messageLog.transferedUsers[0] = user // this is the error
        navigationController?.pushViewController(messageLog, animated: true)
    }
 }


 class MessageLogVC : UIViewController { 
       var transferedUsers = [UserModel]()
 }

错误状态:

线程 1:致命错误:索引超出范围

【问题讨论】:

    标签: arrays swift uitableview indexoutofboundsexception


    【解决方案1】:

    你的数组是空的。没有slot 0 可以插入用户,因为根本没有插槽。

    您需要使用messageLog.transferedUsers.append(user),这将为您的user 创建一个新空间。

    【讨论】:

    • 是的,你是对的。我知道这很简单,但我只是阻止了。谢谢你。等待时间结束后,我会接受这个答案。
    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多