Протоколы Objective-C

Я встретил следующий бит кода в файле TileOverlay.h:

@protocol TileOverlay <MKOverlay> 

Я пытаюсь понять, что это делает. Несколько других наложений затем импортируют этот .h-файл. Этот файл по существу просто создает модифицированную версию класса MKOverlay?

Если нет, можете ли вы прояснить, что он делает?

Это называется наследованием протокола.

MKOverlay – это протокол, определяющий набор методов для реализации объектов.

TileOverlay наследует MKOverlay , что означает, что объект, соответствующий TileOverlay , должен реализовывать методы из MKOverlay и методы от TileOverlay

Вот ссылка, в которой говорится немного о наследовании протокола

MKOverlay – это протокол, а TileOverlay – это протокол, который расширяет MKOverlay .

Любой класс, который соответствует протоколу TileOverlay , также соответствует протоколу MKOverlay .

Подробное объяснение см. В протоколах в протоколах в документации.

Вы можете думать о протоколах, таких как интерфейсы на Java или C #, в основном они объявляют контракт, который должны следовать классам реализации. Разница в том, что в Objective C вы можете сделать некоторые из объявленных методов опционными.

Протокол в Objective-C – это то, что вы в Java или C # называете интерфейсом. Это договор, который может выполнять любой другой класс, на языке Obj-C.

Эта:

 @protocol TileOverlay <MKOverlay> 

Определяет протокол с именем TileOverlay который сам по себе расширяет MKOverlay . То есть, следуя TileOverlay вы также должны соответствовать MKOverlay .

Протоколы в Obj-C, так же как интерфейсы в Jave или C #, не связаны с реализацией. Он ничего не делает. Это всего лишь маркер во время компиляции и во время выполнения, если хотите, чтобы проверить, существуют ли какие-либо функциональные возможности.

  • setContentOffset в UIScrollView в правильном направлении
  • Получите значение от UISlider внутри ячейки
  • эффект потока покрытия для списка pdf
  • Шрифт смелый вопрос в iphone
  • Получить NSDate из строки
  • играть в видео, используя url ios 6
  • Стандартное приложение Weather: просмотр иерархии с таким же поведением
  • Обработать ключ del с клавиатуры
  • Как вы перезагружаете представление UIViewController из XIB после того, как предупреждение о памяти удаляет его?
  • Непризнанные результаты обработки ошибок выбора из geocodeAddressString
  • Ошибка приложения на glDrawArrays (GL_TRIANGLE_STRIP, 0, 4); в GPUImageFilter
  • Давайте будем гением компьютера.