Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个具有键属性的对象:
func value(key: String) -> AnyObject? func setValue(value: AnyObject?, key: String)
我想检查value从两个不同对象的具有相同键的函数返回的值是否是Equatable. Swift 抱怨是因为Equatable有一个Self引用并且只能在泛型中使用。有没有办法检查AnyObject从函数返回的对象是否value符合Equatable?
value
Equatable
Self
AnyObject
由于 Swift 2 的变化,我正在编辑我的答案
要检查协议一致性,只需使用is关键字。
is
但是当协议使用时你不能这样做Self(注意大写的S)。
所以你可以这样做:
if let myValue = myObject.value(myKey) as? Equatable { ... }