Каково различие между формальными и неофициальными протоколами в Objective C?

Каково различие между формальными и неофициальными протоколами в Objective C?

39
задан dontWatchMyProfile 21 June 2010 в 05:49
поделиться

1 ответ

Из Официальной документации

Официальные и неофициальные протоколы

Есть две разновидности протокола, формальный и неформальный:

  • неформальный протокол - это категория в NSObject, которая неявно делает почти все объекты адаптирующими протокол. (Категория - это языковая функция, которая позволяет добавить методы в класс без подклассифицируя его.) Реализация методы в неформальном протоколе по желанию. Перед вызовом метода вызывающий объект проверяет, чтобы увидеть реализует ли целевой объект Это. До опциональных протокольных методов были представлены в Objective-C 2.0, неофициальные протоколы были необходимы для как классы Foundation и AppKit реализовано делегирование.

  • формальный протокол объявляет список методов, которые клиентские классы ожидаются реализации. Формальный протоколы имеют свою декларацию, принятие и синтаксис проверки типов. Вы можете обозначить методы, реализация обязательна или необязательна с @required и @optional ключевые слова. Подклассы наследуют формальный протоколы, принятые их предками. Официальный протокол также может принимать другие протоколы.

Официальные протоколы являются расширением язык Objective-C.

58
ответ дан 27 November 2019 в 02:32
поделиться