gpt4 book ai didi

swift - 如何使用 Swift 泛型枚举?

转载 作者:行者123 更新时间:2023-11-30 11:58:42 25 4
gpt4 key购买 nike

我的问题很简单吧?如何在枚举中使用泛型?

我有一个协议(protocol):

protocol Request {
associatedType BackendModel = Codable
}

class FirstModel: Codable { }

class FirstRequest: Request {
typealias BackendModel = Codable
}

现在我想为请求调用创建一个包含成功/失败的枚举。成功应该返回我的 BackendModel。我想到了类似的东西,但它不起作用。

enum Response<T: Codable> {
case success(T)
case failure(Error)
}

然后我会在函数完成中使用它

// This function is used in an extension of the Request protocol.
func doCallWithCompletion(completion: ((Response<T: BackendModel>) -> Void)?) {
let model = FirstModel()
completion(.success(model))
}

谢谢!

最佳答案

您需要在使用枚举声明闭包时提供具体类型作为泛型参数:

extension Request {

func doCallWith(completion:(Response<FirstModel>) -> ()) {
let model = FirstModel()
completion(.success(model))
}

}

关于swift - 如何使用 Swift 泛型枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47496920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com