我知道这里有很多与此相关的答案,我经历了很多答案,但我仍然不知道我在做什么错。
我正在尝试在点击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:致命错误:索引超出范围
答案 0 :(得分:3)
您的数组为空。没有slot 0
可以插入用户,因为根本没有插槽。
您需要使用messageLog.transferedUsers.append(user)
,这将为您的user
创建一个新空间。