让ContentData
成为一个打算进行子类化的类,并创建一个可以保留一些通用属性的结构...
struct Properties<T: ContentData, U: Paged<ContentData>> {
let contentDataSubclass: T
let pagedContentData: U
}
实例化如下:
let properties = Properties<FAQ, Paged<QuestionAnswer>>(contentData: faq!, contentDataProperty: faq!.questionAndAnswers)
注意:FAQ
和QuestionAnswer
都是ContentData
编译器抱怨说:
error: 'Properties' requires that 'Paged<QuestionAnswer>' inherit from 'Paged<ContentData>'
我是否需要我的Properties结构的where子句来指定我的U类型对象也是泛型类型?这是如何工作的?
目标是编写一个接受多级泛型的结构定义。也许是这样的:
struct Properties<T: ContentData, U: Paged<V: ContentData>>