Видеокурсы по изучению языка программирования Swift. Подробнее

Классовые протоколы

Если вы нашли опечатку в тексте, выделите ее и нажмите CTRL + ENTER.

Вы можете ограничить протокол так, чтобы его могли принимать только классы (но не структуры или перечисления), добавив ключевое слово class к списку наследования протокола. Слово class всегда должно появляться на первом месте списка наследования, до того, как будут вписаны наследуемые протоколы:

protocol SomeClassOnlyProtocol: class, SomeInheritedProtocol {
    // определение протокола типа class-only
}

В примере выше SomeClassOnlyProtocol может быть принят только классом. Если вы попытаетесь принять протокол SomeClassOnlyProtocol структурой или перечислением, то получите ошибку компиляции.

Заметка

Используйте протоколы class-only, когда поведение, определяемое протоколом, предполагает или требует, что соответствующий протоколу тип должен быть ссылочного типа, а не типом значении. Для более детального исследования с вашей стороны прочитайте главы: Структуры и перечисления - типы значения и Классы - ссылочный тип.

 

Swift: 
3.0