gpt4 book ai didi

Swift 上下文类型 any 不能与数组文字一起使用

转载 作者:IT王子 更新时间:2023-10-29 05:14:20 24 4
gpt4 key购买 nike

我正在尝试创建一个带有请求参数的新类,但出现错误:

contextual type any cannot be used with array literal

我尝试在末尾添加 as Any,但它不起作用。

class JsonParams {
let userName = "root"
let password = "admin01"

static let param: [String: Any] = [
"jsonrpc": "2.0",
"id": 1,
"method": "call",
"params": [
"00000000000000000000000000000000",
"session",
"login",
[ "username": userName, "password": password]
]
]
}

编辑:

现在我需要在有人输入后将用户名和密码从用户名文本字段发送到参数,所以我想为参数创建一个方法,

class JsonParams {

let userName = "root"
let password = "admin01"
var param = [String: Any]()
func log (username.text, password.text){
init() {
let param : [String: Any] = ["jsonrpc": "2.0", "id": 1, "method": "call", "params": [ "00000000000000000000000000000000", "session", "login", [ "username": username.text, "password": password.text]]]
self.param = param
}

最佳答案

对 future 访问者的一般回答

当您尝试将数组分配给不是数组的对象时,可能会发生这种类型的错误。

示例 1

let array: Int = [1, 3, 7, 4]
// error: contextual type Int cannot be used with array literal

与其名称相反,常量 array 被声明为单个 Int。但是随后将一个实际的数组分配给它。这可以通过以下任一方式解决。

let array = [1, 3, 7, 4]
let array: [Int] = [1, 3, 7, 4]

示例 2

当有嵌套数组时,它可能不太明显:

let array: [Int] = [1, 2, 7, [100, 200, 300]]
// error: contextual type Int cannot be used with array literal

对于这个,您需要将其泛化为 [Any]

let array: [Any] = [1, 2, 7, [100, 200, 300]]

关于Swift 上下文类型 any 不能与数组文字一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41847312/

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