0
我有兩個協議A
和B
,其中B
繼承自A
。無法使用類型(,)的參數列表調用[方法]
protocol A { }
protocol B: A { }
而且我有一個具有函數調用add
其參數應符合協議A
一個工具類:
class Utility {
func add<T:A>(t:T.Type,param:T){
....
}
}
然後我有創造的Utility
對象,並調用其功能的測試類add
它接受類型B
(實現B
的類對象)的參數:
class Test {
var util: Utility
init() {
util = Utility()
}
func addItem(data:B){
util.add(B.self,param: data) // This line produces Cannot invoke add with argument list
} // of type (B.Protocol,param:B)
}
我在做什麼錯?
請簡單地複製並粘貼您的代碼以避免發佈錯誤。 – Arc676
我認爲你的案例可以簡化爲:http://swiftstub.com/171514009。看來Swift無法在帶有約束的泛型函數中處理參數的協議類型。不知道(但)如果這是一個錯誤或設計。 – courteouselk