这个问题已经在这里有一个答案:
func sendToServer(message: Codable) {
do {
let jsonData = try JSONEncoder().encode(message)
let jsonString = String(data: jsonData, encoding: .utf8)!
// send to server jsonString
} catch let error {
debugPrint("Error occured during parsing \(error.localizedDescription)")
}
}
我想创建它接受它符合可编码对象的方法,但我收到的时候我试图编码此错误:
不能援引“编码”与类型的参数列表“(可编码)”
我怎样才能写出实现这个方法?
你的签名不正确。你不想要一个可编码。你要符合可编码的泛型类型。具体而言,真正需要的只是一个符合可编码:
func sendToServer<Message: Encodable>(message: Message) { ... }
A“可编码的”或“可编码”(协议)本身不能被编码。它没有什么编码的任何信息。但是,符合可编码类型提供这些信息。