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



我有一个对象的键属性:

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

我想检查从两个不同对象中具有相同键的value函数返回的值是否为Equatable。Swift抱怨,因为Equatable有一个Self引用,只能在泛型中使用。是否有一种方法可以检查从value函数返回的AnyObject对象是否符合Equatable ?

由于Swift 2的变化,我正在编辑我的答案

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

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

你可以这样写:

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

最新更新