枚举关联值的问题

Problems with associated values of enums

我已经为我的网络 return 值创建了一个响应 enum 和一个应该 return 一个 AnyObject 的函数,因为它变成了它必须是键的值。

enum Response {

    case Success(value:AnyObject)
    case Failure(errorNumber: Int)

    func getResponse() -> AnyObject{
        switch self {
        case .Success(value: AnyObject):
            return value
        case .Failure(errorNumber: Int):
            return errorNumber
        }
    }

}

生成以下错误: 我没有添加错误的实际文本,因为我想向您展示它甚至不会为错误编号和值进行语法高亮

最终在我的代码中,我必须将此值分配给一个 AnyObject,稍后该 anyobject 将被向下转换为 [NSObject : AnyObject]

所以我会:

var data : AnyObject? // <-- from our internal framework
data = Response.Success(data)
var params = data as! [NSObject : AnyObject] // <-- from our internal framework

第一个代码片段是我的新代码,但内部框架是我无法更改的代码行。

仅供参考我们的代码仍在使用 Swift2 :(

我建议您阅读 Swift Book

func getResponse() -> Any {
    switch self {
    case .Success(let value):
        return value
    case .Failure(let errorNumber):
        return errorNumber
    }
}