Les Protocoles formels sont déclarés en utilisant la directive @protocol
@protocol unProtocol < une liste de protocole > déclarations des méthodes @end
Dans le code, on fait références aux protocoles avec la même directive @protocol() avec le nom du protocole entre parenthèses.
Les listes de protocole entre chevrons (<...>) peuvent être utilisé pour trois choses différentes: