凭借我的新手 swift 技能,我正在努力找出正确的 swift 语法来让这个游乐场工作。取决于我如何尝试解决它,我要么得到
无法使用类型为“(可编码)”的参数列表调用“编码”
这类似于这个问题中解决的问题 Using JSON Encoder to encoding a variable with Codable as type or I get
' (T) -> ()' 要求 'Encodable' 符合 'Encodable'
我真的很感激有解释的解决方案
编辑 为了提供更多上下文,我在这里尝试实现的模式是用于中间件路由器。根据应用程序中的操作,路由器将构建网络请求。codableParam 的目的是为用例提供一致的结构。因此,所有情况都将返回 nil 或 Codable 类型。
struct unityAuthenticationRequest: Codable {
var username : String
var password : String
}
enum test {
case volume
case num2
case num3
var codableParam: Encodable? {
switch self {
case .volume:
return unityAuthenticationRequest(username: "uname", password: "pwrods")
default:
return nil
}
}
}
func saveObject<T:Encodable>(_ object: T) {
let data = try? JSONEncoder().encode(object)
}
func dx<T: Codable>(fx: T) {
let datax = try? JSONEncoder().encode(fx)
}
let r = test.volume
saveObject(r.codableParam)