заинитить сразу дженерик проперть
А в чем разница если указать init(network: NetworkService) init<N: NetworkService>(network: N) ?
в том что в первом случае компилятор обернет параметр network в existential container, во втором: компилятор сгенерит специальные версии этого метода для типов, на которых он реализован
То есть допустим если NetworkService это протокол, то такой инициализатор сможет принимать другие классы под этим интерфейсом ?
это утверждение верно для обоих вариантов. Если NetworkService не ограничен как class или AnyObject - то не только классы
В таком случае "специальные версии этого метода для типов" это инициализация на основании типа? из серии <N:NetworkService> where N.P == P(где P какой-нибудь протокол внутри класса подписанный под N) верно ?
Обсуждают сегодня