我有一个对象的键属性:
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 {
...
}