gpt4 book ai didi

swift - 从另一个通用枚举初始化通用 Swift 枚举?

转载 作者:搜寻专家 更新时间:2023-11-01 07:24:42 24 4
gpt4 key购买 nike

我正在尝试为我的通用枚举编写一个初始化程序,它采用 Alamofire 的通用结果枚举并将其转换为我自己的结果类型。我想出的是以下内容:

public enum Result<Value, Error: ErrorType> {
case Success(Value)
case Failure(Error)

public init(result: Alamofire.Result) {
switch(result) {
case Alamofire.Result.Success(let val):
self = MyFramework.Result.Success(val)
case Alamofire.Result.Failure(let err):
self = MyFramework.Result.Failure(err)
}
}
}

但是我遇到了以下错误:

Cannot invoke 'Success' with an argument list of type '(Value)'

最佳答案

这似乎是编译器推断 Alamofire.Result 的通用参数的方式的问题。

你可以通过改变来修复它

init(result: Alamofire.Result) {

init(result: Alamofire.Result<Value, Error>) {

这样,泛型参数被显式指定(与您的结果类型的参数相同)。

我也推荐你file a bug ,因为这给出的错误消息非常无用。

关于swift - 从另一个通用枚举初始化通用 Swift 枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878533/

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