gpt4 book ai didi

ios - Alamofire 5 Any In 字典

转载 作者:行者123 更新时间:2023-12-01 19:31:59 28 4
gpt4 key购买 nike

我正在尝试使用 Alamofire 5 进行发布请求。我必须使用 Dictionary<String, Any>对于参数。因为我正在为 Alamofire 编写包装器。但似乎我无法在字典中使用 Any 对象,因为 Alamofire 给了我一个编译器错误:

Value of protocol type 'Any' cannot conform to 'Encodable'; only struct/enum/class types can conform to protocols

我试过的:
    let encodedParameters = Dictionary<String, Any>

AF.request(url, method: .get, parameters: encodedParameters, headers: headers)

在我的字典中,某些值将是字符串其他值将是整数。所以我不能使用常量类型。我该如何解决这个问题?

最佳答案

使用新request ,您可以为请求参数创建自己的结构:

// you might have...
struct FooRequestParameters : Codable {
let paramName1: Int
let paramName2: String
}

// for another type of request, you might have different parameters...
struct BarRequestParameters: Codable {
let somethingElse: Bool
}

你可以通过一个 FooRequestParameters(paramName1: 1, paramName1: "hello")而不是你的字典。这与传递字典相同:
[
"paramName1": 1,
"paramName2": "hello"
]

此 API 更改背后的基本原理可能具有更高的安全性。带 [String: Any] ,你可以很容易地,比如说,给一个 String应该是 Int 的参数的值, 或者错误地输入参数名称,或者在没有意识到的情况下遗漏了一些参数......等等等等。

关于ios - Alamofire 5 Any In 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62264354/

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