给数组赋值会报错

Assigning value to array gives an error

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

我正在尝试在点击 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]()
 }

错误状态:

Thread 1: Fatal error: Index out of range

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

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