Rob*_*Rob 5 generics ios swift2 equatable
我有一个具有键控属性的对象:
func value(key: String) -> AnyObject?
func setValue(value: AnyObject?, key: String)
Run Code Online (Sandbox Code Playgroud)
我想检查value从两个不同对象的具有相同键的函数返回的值是否为Equatable. Swift 抱怨是因为Equatable有一个Self引用并且只能在泛型中使用。有没有办法可以检查AnyObject从value函数返回的对象是否符合Equatable?
BPC*_*orp -5
由于 Swift 2 的变化,我正在编辑我的答案
要检查协议一致性,只需使用is关键字即可。
但是当协议正在使用时你不能这样做Self(注意大写的S)。
所以你可以这样做:
if let myValue = myObject.value(myKey) as? Equatable {
...
}
Run Code Online (Sandbox Code Playgroud)