返回具有相关值的枚举,其中AnyObject是预期的

时间:2015-10-05 17:45:10

标签: swift enums swift2 reactive-cocoa

我尝试使用带有关联值的enum来捕获Reactive Cocoa 2.5 RACSignal操作流的结果。 API指定信号包含AnyObject值。我收到Cannot convert value of type 'MyEnum' to expected argument type 'AnyObject!'的错误。有没有简单的方法将我的枚举值包装在引用中,以便这可以工作?

1 个答案:

答案 0 :(得分:1)

我想你必须问enum是否真的是最好的选择。但如果是的话,你能不能只创建自己的包装器?

enum MyEnum {
    case MyCase(String)
}

class MyEnumWrapper {
    var myEnum: MyEnum

    init(_ myEnum: MyEnum) {
        self.myEnum = myEnum
    }
}

func takeAnyObject(a: AnyObject!) {

    if let myEnumW = a as? MyEnumWrapper {
        print(myEnumW.myEnum)
    }

}

let tmp = MyEnumWrapper(.MyCase("Hello"))
takeAnyObject(tmp)