Swift является мощным средством, поскольку вы можете передавать типы в качестве параметров и создавать переменные типов.Это привлекательно, но все же, есть лучшее решение для вашей проблемы.
Определите protocol CustomArrayPopulatable {}
И добавьте это ко всем подклассам / классам, которые могут быть добавлены в массив.EG A1: CustomArrayPopulatable
;A2: CusstomArrayPopulatable
.
С помощью универсальных типов вы можете добиться большой абстракции.Однако имейте в виду, что если вам понадобится привести к конкретному подтипу позже, вам нужно будет привести его к себе, например: if type as? A1 {...}
, поэтому используйте осторожно дженерики и подумайте, прежде чем начать, действительно ли они вам нужны.