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

我如何在Swift中初始化这种包含属性而没有构造函数的枚举?,swift,generics,enums,alamofire,init,Swift,Generics,Enums,Alamofire,Init,在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 i

在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 }
}
公共枚举结果{
案例成功(价值)
案例失败(错误)
///如果结果成功,则返回'true',否则返回'false'。
公共var isSuccess:Bool{get}
///如果结果失败,则返回'true',否则返回'false'。
公共变量isFailure:Bool{get}
///如果结果成功,则返回关联的值,否则返回'nil'。
公共变量值:值?{get}
///如果结果为失败,则返回关联的错误值,否则返回'nil'。
公共变量错误:错误?{get}
}
在struct响应中,我需要给它的构造函数一个结果

 public init(request: NSURLRequest?, response: NSHTTPURLResponse?, data: NSData?, result: Alamofire.Result<Value, Error>)
public init(请求:NSURLRequest?,响应:NSHTTPURLResponse?,数据:NSData?,结果:Alamofire.result)
但遗憾的是,我发现struct响应中没有init,每个属性只有一个getter。那么我如何初始化响应并使用它初始化结构响应呢?

如下所示:

Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: Result<String,NSError>.Success("abc"))
Response(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result.Success(“abc”))
或者这个:

let result: Result<String,NSError> = .Success("abc")
Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: result)
let result:result=.Success(“abc”)
响应(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result)
您需要使用完整的
结果,因为Swift只能推断一个泛型类型参数。

如下所示:

Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: Result<String,NSError>.Success("abc"))
Response(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result.Success(“abc”))
或者这个:

let result: Result<String,NSError> = .Success("abc")
Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: result)
let result:result=.Success(“abc”)
响应(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result)
您需要使用完整的
结果,因为Swift只能推断一个泛型类型参数。

我通常使用以下方法:

Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: Result<String,NSError>.Success("lalala"))
响应(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result.Success(“拉拉”))
这是最简单的方法。

我通常使用以下方法:

Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: Result<String,NSError>.Success("lalala"))
响应(请求:NSURLRequest(),响应:NSHTTPURLResponse(),数据:NSData(),结果:result.Success(“拉拉”))

这是最简单的方法。

是的!Init enum及其大小写。我只是有点困惑,因为枚举中的属性。。。谢谢,是的!Init enum及其大小写。我只是有点困惑,因为枚举中的属性。。。谢谢