ios - 替换对象数组中的特定值 swift 5
问题描述
我需要更改对象数组中的值
从 API 接收的选定运动的数组
更新 API 响应
arrSelectedID = [["slug": cricket,
"id": 1,
"banner_image": https://_1558964043.jpg,
"name": Cricket,
"icons": {
black = "https://sport_icon_cricket_black.png";
green = "https://sport_icon_cricket_green.png";
grey = "https://sport_icon_cricket_gray.png";
white = "https://sport_icon_cricket_white.png";
}],
["slug": soccer,
"banner_image": https://1558964051.jpg
"icons": {
black = "https://sport_icon_soccer_black.png";
green = "https://sport_icon_soccer_green.png";
grey = "https://sport_icon_soccer_gray.png";
white = "https://sport_icon_soccer_white.png";
},
"id": 2,
"name": Soccer]]
我的阵列
struct ObjSportsList:Codable {
var id:Int
var name:String
var slug:String
var selected:Bool?
var icons:ObjSportsIcon
}
struct ObjSportsIcon:Codable {
var green:String
var grey:String
var white:String
var black:String
}
var arrSports:[ObjSportsList] = [] // Array which is custom object
下面的响应打印了我的自定义对象“ObjSportsList”
arrSports = (id: 1,
name: "Cricket",
slug: "cricket",
selected: nil,
),
(id: 2,
name: "Soccer",
slug: "soccer",
selected: nil,
),
(id: 3,
name: "Baseball",
slug: "baseball",
selected: nil,
),
我想更改“选定”值 = true,这是从“数据”中的 API 数组获取 id 示例:[1,3] 仅更改第一个和第三个selected
值 == true
我尝试使用以下代码,但数组未更新
for (index, var sports) in self.arrSports.enumerated() {
for selectedSports in arrSelectedID {
if selectedSports["id"] as! Int == sports.id {
sports.selected = true
}
}
解决方案
我用自己的代码解决了这个问题,请检查此代码
for (index, sports) in self.arrSports.enumerated() {
for selectedSports in arrSelectedID {
if selectedSports["id"] as! Int == sports.id {
self.arrSports[index].selected = true
}
}
}
推荐阅读
- java - 如何使用 pom.xml 更新属性文件中的环境值
- c# - 在屏幕保护程序/屏幕关闭期间在 UWP 中使用 Syncfusion 的图表时进程内存较高
- r - r 中的嵌套 for 循环错误(包 extRemes)
- javascript - 为什么当我在 app.js 上使用控制台登录时它会得到未定义的返回?
- vb.net - 循环遍历空文本框,直到文本框有数据
- bash - 从脚本中的字符串获取纪元
- algorithm - BST(方案)中的第 K 个最小元素
- c# - 为什么我的玩家生命没有在每次屏幕加载时重置?
- c# - 你如何从另一个方法的代码中结束一个方法?
- python - GNUPG - 文件夹名称中的空格问题