Swift:通用类型符合协议

时间:2016-09-07 17:39:04

标签: ios swift generics request protocols

我对泛型类型有一些问题。我想检查泛型类型是否符合某些协议,并在传递给另一个泛型函数之后。例如,我有功能:

func requestSignal<T:Mappable>(target:Api) -> SignalProducer<[T], NSError> 

我想做这样的事情:

func request<T>(target:Api, withObjectType type: T.Type) {        
    if let mappableType = type as? Mappable.Type {
        let requestSignal: SignalProducer<[?????], NSError>  = self.requestSignal(target) } 

但如果我尝试传递 T - 它不符合Mappable。

如果传递 mappableType - 它不是类型

1 个答案:

答案 0 :(得分:6)

您可以将T定义为Mappable,就像在第一个函数中一样。

func request<T: Mappable>