Si j'ai un protocole (disons UIPickerViewDataSource) et que j'implémente ses méthodes requises, ai-je besoin de déclarer ces méthodes dans le fichier d'en-tête de ma classe? En ce moment, je ne le fais pas et je reçois un avertissement de mise en œuvre incomplète (bien que tout fonctionne bien). Si j'ajoute les méthodes requises dans le, je ne reçois pas un tel avertissement:implémenter des méthodes de protocole dans objectif-c
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
Est-ce le comportement correct? Est-il vraiment nécessaire d'ajouter la déclaration pour les méthodes de protocole requises dans le fichier d'en-tête de ma classe?
+ 1 Si vous spécifiez le protocole d'implémentation dans l'en-tête, je ne les déclarerais pas - pareil avec les méthodes surchargées. J'aime bien le regroupement avec pragmas dans le fichier d'implémentation comme le suggère Apple. – Eiko
En dehors de l'inutilité de spécifier explicitement les méthodes de protocole dans l'en-tête, je pourrais ajouter que la plupart du temps je trouve ces méthodes protocolaires dans un en-tête de classe inutilement le fichier d'entête et distrait des méthodes qui rendent la classe . – DarkDust
En effet. C'est la spécification ouverte de quelles méthodes votre classe «exporte». Et les méthodes déléguées ne sont probablement pas ce que vous voulez que d'autres personnes/objets appellent directement. – Eiko