Swift: 有没有办法测试转换为 AnyObject 的对象是否符合 Equatable?
Swift: Is there a way to test if object cast as AnyObject conforms to 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 {
...
}
我有一个具有键控属性的对象:
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 {
...
}