给数组赋值会导致错误

时间:2018-08-27 16:58:44

标签: arrays swift uitableview indexoutofboundsexception

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

我正在尝试在点击UIViewController时将数组传递给另一个UITableViewCell。我要做的就是将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:致命错误:索引超出范围

1 个答案:

答案 0 :(得分:3)

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

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