给数组赋值会报错
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。
我知道这里有很多与此相关的答案,我经历了很多,但我仍然没有意识到我做错了什么。
我正在尝试在点击 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。