枚举关联值的问题
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
}
}
我已经为我的网络 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
}
}