протокол используется для объявления функции, которая собирается использоваться многими объектами или классами.
Рассмотрим пример, вы разрабатываете базу данных о птицах. Таким образом, у вас будет птица как базовый класс, и вы унаследуете птицу, чтобы создать свою собственную птицу. поэтому в классе птиц у вас не будет никаких определений, кроме некоторых видов поведения, которые все птицы должны будут наследовать. Как птицы могут летать, есть такие крылья. Итак, что вы будете делать, вы объявите все эти поведения и реализуете их в своих производных классах. Потому что могут быть птицы, которые летают высоко и на большие расстояния, а некоторые летают на короткие расстояния.
Для этой цели используется @protocol. Используя @protocol, вы объявляете о некоторых поведении. И используйте эти поведения в своих других классах для реализации поведения.
Это позволит избежать накладных расходов при объявлении того же метода снова и снова и гарантирует, что вы реализуете поведение в своем классе.
См. Также этот вопрос: http://stackoverflow.com/questions/1913935/what-are-the-arrow-brackets-in-an-obj-c-class-interface-for –