无法分配类型'数据的值?'输入数据?'

时间:2018-06-19 07:30:16

标签: swift

我有一个API调用函数,我一直在少数项目中使用。

在添加常用API调用函数后创建的新项目中发生此错误。

即使错误信息没有意义,这应该可行:

enter image description here

static func callPost(url:String, params:[String:Any], finish: @escaping ((message:String, data:Data?)) -> Void)
{
    let theUrl = URL(string: url)!

    var request = URLRequest(url: theUrl)
    request.httpMethod = "POST"

    let postString = self.getPostString(params: params)
    request.httpBody = postString.data(using: .utf8)

    var result:(message:String, data:Data?) = (message: "Fail", data: nil)
    let task = URLSession.shared.dataTask(with: request) { data, response, error in

        if(error != nil)
        {
            result.message = "Fail Error not null : \(error.debugDescription)"
        }
        else
        {
            result.message = "Success"
            result.data = data
        }

        finish(result)
    }
    task.resume()
}

注意:

  • 我已经检查了旧项目(我从中复制了此代码),它仍然可以运行并构建得很好。

  • 我正在使用Xcode 9.3.1和Swift 4.1

1 个答案:

答案 0 :(得分:0)

如果您查看突出显示,那么您尝试写入的>>> s = 'αa' >>> a = np.array(list(s.encode('utf8')),dtype=np.int8) >>> b = np.array(a,dtype=np.uint32) >>> b array([4294967246, 4294967217, 97], dtype=uint32) >>> for c in b: print(hex(c)) ... 0xffffffce 0xffffffb1 0x61 类型是由您定义的,并且与Data基金会的Data类型不同回报。您需要删除自己的URLRequest类型,然后使用基金会的Data代替。

另外作为旁注,我猜你正在比较"成功"并且"失败"在其他地方,这有点不好,这是枚举的理想用例。这是一种更清洁的方法:

Data