web-dev-qa-db-fra.com

Une catégorie peut-elle implémenter un protocole dans l'objectif C?

J'ai une catégorie sur NSDate et ce serait pratique s'il pouvait implémenter un protocole que j'ai créé précédemment. Est-ce possible? quelle est la syntaxe correcte pour cela?

85
cfischer

Oui, c'est possible. La syntaxe est:

@interface NSDate (CategoryName) <ProtocolName>
@end

@implementation NSDate (CategoryName)
@end

Voici documentation d'Apple sur le sujet.

Il est également possible de le faire en utilisant une extension de classe. J'aime beaucoup cela pour me conformer en privé aux protocoles des délégués. Cela masque le détail de l'implémentation d'être un délégué d'une classe de l'interface publique et supprime la dépendance de l'en-tête.

141
Nikolai Ruhe