gpt4 book ai didi

arrays - Swift - Array.first(其中

转载 作者:行者123 更新时间:2023-11-28 12:15:35 25 4
gpt4 key购买 nike

我遇到了 userdataArray.first(where....) 的问题。基本上,我的目标是根据 userId 提取消息的 userdata 以填充单元格。

变量userdata 包含一个数组。但是,当我尝试使用 userdata?.name 配置单元格时,模拟器会出错。

我做错了什么? userdata 不是数组,还是嵌套数组?

viewController 中的代码:

let userdata = userdataArray.first(where:{$0.userId == activity.userId})
print("Array filter test")
dump(userdata)

let image = UIImage(named: "profile_image")

cell.configureCell(profileImage: image!, profileName: "(userdata?.name)!", activityDate: "8 October", name: activity.name, distance: "8 km", sightings: activity.sightings, kills: activity.kills)
return cell

Xcode 的输出和错误:

Array filter test
▿ Optional(Shoota_MapKit.Userdata)
▿ some: Shoota_MapKit.Userdata #0
- userId: "NhZZGwJQCGe2OGaNTwGvpPuQKNA2"
- name: "Christian"
- city: "Oslo"
- country: "Norway"
- profileImage: "profile_image"

最佳答案

"(userdata?.name)!" 只是一个普通字符串,以左括号开头。这可能不是您想要的。

"\(userdata?.name)!" 是一个使用字符串插值 的字符串。它将评估(userdata?.name)!如果userdatanil,那么userdata?.namenil! 会使它崩溃,这是故意的。

建议使用 if let ...guard let ... 并在找不到项目时使用一些替代代码。

关于arrays - Swift - Array.first(其中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com