Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 来自字典的可编码URL请求参数_Swift - Fatal编程技术网

Swift 来自字典的可编码URL请求参数

Swift 来自字典的可编码URL请求参数,swift,Swift,我正在尝试使用JSONECoder对字典进行编码。编码的对象将作为URL请求的参数传递给httpBody 我找不到将参数设置为有效的可编码项的方法,以下是我当前的代码: class MyRequest{ var parameters:[String:Encodable] = [:] ..... func urlRequest()->URLRequest{ var request = URLRequest(url:MyURL) le

我正在尝试使用JSONECoder对字典进行编码。编码的对象将作为URL请求的参数传递给httpBody

我找不到将参数设置为有效的可编码项的方法,以下是我当前的代码:

class MyRequest{
    var parameters:[String:Encodable] = [:]
    .....

    func urlRequest()->URLRequest{
        var request = URLRequest(url:MyURL)

        let encoder = JSONEncoder()
        do {
            let jsonBody = try JSONEncoder().encode(parameters) // ERROR HERE
            request.httpBody = jsonBody
        }
        .....
    }
}
我在尝试编码的行收到此错误


协议类型“Encodable”不能与“Encodable”一致,因为只有具体类型才能与协议一致

错误的意思与它所说的完全一致。要编码的对象必须是符合Encodable的具体类型

一个可能的解决方案是使类成为泛型

class MyRequest<T : Encodable> {
    var parameters:[String:T] = [:]
    .....

    func urlRequest()->URLRequest{
        var request = URLRequest(url:MyURL)

        let encoder = JSONEncoder()
        do {
            let jsonBody = try JSONEncoder().encode(parameters)
            request.httpBody = jsonBody
        }
        .....
    }
}