gpt4 book ai didi

swift - 我如何在 Swift 中初始化这种包含属性但没有构造函数的枚举?

转载 作者:行者123 更新时间:2023-11-28 10:21:50 24 4
gpt4 key购买 nike

在 Alamofire 中,我发现有一个枚举:

public enum Result<Value, Error : ErrorType> {
case Success(Value)
case Failure(Error)
/// Returns `true` if the result is a success, `false` otherwise.
public var isSuccess: Bool { get }
/// Returns `true` if the result is a failure, `false` otherwise.
public var isFailure: Bool { get }
/// Returns the associated value if the result is a success, `nil` otherwise.
public var value: Value? { get }
/// Returns the associated error value if the result is a failure, `nil` otherwise.
public var error: Error? { get }
}

在 struct Response 中,我需要给它的构造函数一个 Result。

 public init(request: NSURLRequest?, response: NSHTTPURLResponse?, data: NSData?, result: Alamofire.Result<Value, Error>)

但遗憾的是,我发现 struct Response 中没有 init,每个属性只有一个 getter。那么我如何初始化一个 Response 并使用它来初始化 struct Response?

最佳答案

像这样:

Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: Result<String,NSError>.Success("abc"))

或者这个:

let result: Result<String,NSError> = .Success("abc")
Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: result)

您需要使用完整的 Result<…>因为 Swift 只能推断泛型类型参数之一。

关于swift - 我如何在 Swift 中初始化这种包含属性但没有构造函数的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056858/

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