我想寫一個類似於NSArray的containsObject
方法的擴展方法。下面是我的嘗試:無法將Swift對象轉換爲協議 - 該怎麼辦?
extension Array {
func contains(item: T) -> Bool {
for value in self {
if item == value {
return true
}
}
return false
}
}
我上線if item == value {
一個錯誤,指出:
"Could not find an overload for "==" that accepts the supplied arguments."
我試圖鑄造項目和值進行比較之前Equatable,但它不可能垂頭喪氣非-ObjC對象到一個協議
var equatableItem = item as Equatable
的錯誤信息是:
"Cannot downcast from 'T' to [email protected] protocol type 'Equatable'"
如何在Swift中實現此方法?我不想使用bridgeToObjectiveC
並調用containsObject;如果在純Swift中編寫這樣的方法是可能的,那麼這更像是一個學術問題。
@Sulthan感謝,正是我一直在尋找。 –