我有一个具有键控属性的对象:
func value(key: String) -> AnyObject?
func setValue(value: AnyObject?, key: String)
我希望检查value
函数从两个不同对象使用相同密钥返回的值是Equatable
。 Swift抱怨,因为Equatable
有一个Self
引用,只能用于泛型。有没有办法可以查看AnyObject
函数返回的value
对象是否符合Equatable
?
答案 0 :(得分:-3)
由于Swift 2的变化,我正在编辑m&#39答案
要检查协议一致性,只需使用is
关键字。
但是当协议使用Self
时,你不能这样做(注意大写字母S)。
所以你可以这样做:
if let myValue = myObject.value(myKey) as? Equatable {
...
}