gpt4 book ai didi

arrays - 使用 Alamofire 追加之前快速检查对象是否存在

转载 作者:行者123 更新时间:2023-11-28 10:43:19 24 4
gpt4 key购买 nike

我正在尝试验证来自 API 的对象是否已存在于我的对象数组中,但我无法进行该验证,Xcode 一直告诉我

Binary operator '==' cannot be applied to two 'Cidades' operands 

我的代码是:

var cidades = [Cidades]()

func findAllCidades(completion: @escaping CompletionHandler) {
Alamofire.request(URL_CIDADESATIVAS, method: .get, parameters: nil, encoding: JSONEncoding.default).responseJSON { (response) in

if response.result.error == nil {
guard let data = response.data else {return}


if let json = try? JSON(data: data) {
let results = json["results"].array

for item in results! {
let name = item["nome"].stringValue
let estado = item["estado"].stringValue
let id = item["id"].intValue

let cidade = Cidades(id: id, nome: name, estado: estado)
if(!self.cidades.index(where: { $0 == cidade})){
self.cidades.append(cidade)
}


}
completion(true)

}

} else {
completion(false)
debugPrint(response.result.error as Any)
}
}
}

最佳答案

cidade 不会在 self.cidades 中建立索引,因为 cidade 在新创建的对象中。如果您尝试检查,则需要比较特定值。

let cidade = Cidades(id: id, nome: name, estado: estado)
if self.cidades.contains(where: { $0.id == cidade.id}) {
self.cidades.append(cidade)
}

希望这会有所帮助。

关于arrays - 使用 Alamofire 追加之前快速检查对象是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504893/

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