Сообщение об ошибке немного странно, но то, что вы пытаетесь сделать, неверно.
Вы не можете создавать обобщения с использованием протоколов. При создании универсального, вы должны использовать конкретный тип . Не протокол.
Food & Growable
не является конкретным типом .
Вам потребуется подкласс:
class GrowableFood: Food, Growable {
...
}
let animal2 = Animal<GrowableFood>()
или вы можете расширить Animal
, если Food
равно Growable
:
extension Animal where T: Growable {
}