2015-09-13 39 views
2

我已鍵控屬性的對象:Swift:有沒有一種方法可以測試Object作爲AnyObject是否符合Equatable?

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

我想檢查是否從value函數返回來自兩個不同的對象相同的密鑰值是Equatable。 Swift抱怨,因爲EquatableSelf參考,只能用於泛型。有沒有一種方法可以檢查從value函數返回的AnyObject對象是否符合Equatable

回答

-3

由於斯威夫特2的變化,我編輯m'y回答

要檢查協議一致性,簡單地使用is關鍵字。

但是當協議使用Self(注意大寫字母S)時,你不能這樣做。

所以,你可以這樣做:

if let myValue = myObject.value(myKey) as? Equatable { 
    ... 
} 
+3

你認爲什麼是不工作的。 swift編譯器會產生以下錯誤:'Protocol'Equatable'只能用作通用約束,因爲它具有Self或相關類型需求' – maxandron

相關問題