5

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

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

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

4

1 回答 1

-4

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

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

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

所以你可以这样做:

if let myValue = myObject.value(myKey) as? Equatable {
    ...
}
于 2015-10-08T14:25:33.907 回答