Скажем, у меня есть набор объектов, наследуемых от общего суперкласса (в этом случае это предпочтительнее протоколов):
class ObjectSuperClass {
type: ObjectType
}
class ObjectClass1: ObjectSuperClass {
type = .Type1
}
class ObjectClass2: ObjectSuperClass {
type = .Type2
}
Я ищу создать общую функцию поиска, например:
func objectsOfType<T: ObjectSuperClass>(T.class, otherFilter: Any?) -> [T]
Что можно использовать для поиска данного подтипа, возвращая более конкретный массив результатов:
let result = objectsOfType(ObjectClass2.class, otherFilter: nil) -> [ObjectClass2]
(pseudo-swift)
Я чувствую, что это то, что может помочь генерик, но не может видеть, где должны быть помещены ограничения. Возможно ли это?