Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';不要在Alamofire中使用公共枚举_Ios_Swift_Alamofire - Fatal编程技术网

Ios Can';不要在Alamofire中使用公共枚举

Ios Can';不要在Alamofire中使用公共枚举,ios,swift,alamofire,Ios,Swift,Alamofire,我有以下代码: import Alamofire extension Alamofire.Request { public func responseObject<T: ResponseJSONObjectSerializable>(completionHandler:(NSURLRequest?,NSHTTPURLResponse?, Result<T>) -> Void) -> Self { let responseSerializer = Generi

我有以下代码:

import Alamofire

extension Alamofire.Request {
public func responseObject<T: ResponseJSONObjectSerializable>(completionHandler:(NSURLRequest?,NSHTTPURLResponse?, Result<T>) -> Void) -> Self {
let responseSerializer = GenericResponseSerializer<T> { request, response, data in

guard let responseData = data else {

    let failureReason = "Object could not be serialized because input data was nil."
    let error = Error.errorWithCode( .DataserializableFailed, failureReason: failureReason)
    //Error: Type of expression is ambiguous without more context

    return .Failure(data, error)

}}}
如果我把
code
放在
.dataserializablefiled
前面,它会说:使用未解析标识符“code”


怎么了

显然你的大写字母/拼写不同。它应该是
.DataSerializationFailed
,而不是
.dataserializablefiled


或者您可以参考
Error.code.DataSerializationFailed

@Rob问题已解决,谢谢!但是我想知道为什么在我把
.code
放在
.DataSerializationFailed
之前时仍然有bug。你可以引用完全限定值
Error.code.DataSerializationFailed
,或者如果可以推断类型
Error.code
,你可以使用“点语法”,只引用枚举值,例如。,
.DataSerializationFailed
。虽然如果编译器能够推断出您所说的
.code.DataSerializationFailed
,这可能是一种优雅的方式,但它没有这样做并不奇怪。
public struct Error {
public enum Code: Int {
    case InputStreamReadFailed           = -6000
    case OutputStreamWriteFailed         = -6001
    case ContentTypeValidationFailed     = -6002
    case StatusCodeValidationFailed      = -6003
    case DataSerializationFailed         = -6004
    case StringSerializationFailed       = -6005
    case JSONSerializationFailed         = -6006
    case PropertyListSerializationFailed = -6007
}
}