如何在泛型中强制子类/协议

时间:2014-10-06 19:13:31

标签: generics swift

我有一个协议:

protocol CXSummarizable:Hashable,Equatable{
    func summary() -> (title:String,subTitle:String,icon:CXImage,identifier:CXIdentifier);
}

我想制作一个遵循这个协议的数组字典。

Dictionary<CXSummarizeable,Array<CXSummarizeable>>

是否有一些特殊的语法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

  

我想制作一个遵循这个协议的数组字典。

你可以这样做。

var result: [CXSummarizeable:[CXSummarizeable]] = [:];
//           ^ key type      ^ value type         ^ empty dictionary               

您可以将字典的类型定义为具有CXSummarizeable类型的键和类型[CXSummarizeable]的值的字典。然后将空字典文字[:]分配给该变量。

然后您可以开始插入数据。