我有一个viewModel文件,其中初始化了两个数组,这是用户类型User和消息类型lastM的用户。我将在下面的例子中添加数组打印出来时的样子。我试图在视图文件中引用这些数组。在init时,视图会获得传递给它的用户。通过将用户传递到视图中,我试图在Users数组中查找此用户索引。然后我想取这个索引,并得到lastM数组中相同索引的元素,每次我这样做的时候,都会得到致命错误索引超出范围。
视图文件
let user: User
@ObservedObject var viewModel = MessageViewModel()
var body: some View {
HStack(spacing: 20){
let index = viewModel.users.firstIndex(of: user)
let value = viewModel.lastM[index ?? 0]
Text(value.text)
Text("\(value.timestamp)")
viewModel文件中的数组
@Published var users = [User]()
@Published var lastM = [Message]()
打印出users数组如下所示:
[应用程序用户(_id:文档ID<Swift.String>(值:可选(“uosdPla 4v 6 Mh 7ZDL 9 lyzeqkHVOx 1”)),用户名:“贝利”,全名:“海莉斯坦”,配置文件图像URL:“",电子邮件:“Stacymc@gmail.com“),...更多用户]
输出lastM数组如下所示:
[应用程序消息(id:“编号7 F26 B3 F-6 F0 A-4A 28 -8426-411149942733”,文本:“嗨”,收到:假,时间戳:2022年12月18日22:46:19 + 0000),...更多消息]
1条答案
按热度按时间uklbhaso1#
尝试类似这样的方法,以避免
...error index out of range
: