Swift:有没有办法测试对象转换为AnyObject是否符合Equatable?

时间:2015-09-13 20:43:15

标签: ios generics swift2 equatable

我有一个具有键控属性的对象:

func value(key: String) -> AnyObject?
func setValue(value: AnyObject?, key: String)

我希望检查value函数从两个不同对象使用相同密钥返回的值是Equatable。 Swift抱怨,因为Equatable有一个Self引用,只能用于泛型。有没有办法可以查看AnyObject函数返回的value对象是否符合Equatable

1 个答案:

答案 0 :(得分:-3)

由于Swift 2的变化,我正在编辑m&#39答案

要检查协议一致性,只需使用is关键字。

但是当协议使用Self时,你不能这样做(注意大写字母S)。

所以你可以这样做:

if let myValue = myObject.value(myKey) as? Equatable {
    ...
}