Return 具有关联值的枚举,其中需要 AnyObject

Return an enum with associated value where AnyObject is expected

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

我想你必须问 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)