如何将泛型结构发送到返回JSON的函数?
我试图制作一个func,它将一个struct作为参数并返回一个JSON数据。我制作它是因为我想避免重复,它将在不同的地方和不同的结构中使用(例如:用户、客户端、联系人.)
struct User : Codable {
let email: String
let password: String
}
func makeJSONData<T>(_ value: T) -> Data {
var jsonData = Data()
let jsonEncoder = JSONEncoder()
do {
jsonData = try jsonEncoder.encode(value)
}
catch {
}
return jsonData
}通过使用makeJSONData,我得到了一个错误:参数类型'T‘不符合预期类型'Encodable’
let user = User(email: emailTextField.text!, password : passwordTextField.text!)
let user2 = makeJSONData(user)发布于 2018-01-29 05:16:01
因为你没有定义T的类型,所以只需改变
makeJSONData<T>至
makeJSONData<T: Codable>https://stackoverflow.com/questions/48494560
复制相似问题