首页 > 解决方案 > 替换对象数组中的特定值 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
                                }
                            }

标签: iosswift

解决方案


我用自己的代码解决了这个问题,请检查此代码

                for (index, sports) in self.arrSports.enumerated() {
                    for selectedSports in arrSelectedID {
                        if selectedSports["id"] as! Int == sports.id {
                            self.arrSports[index].selected = true
                        }
                    }
                }

推荐阅读