Si une méthode d'un protocole est marquée comme optionnelle, vous devez vérifier si un objet implémente cette méthode avant d'essayer de l'appeler.
Par exemple, la vue du camembert peut tester la méthode du titre du segment de la manière suivante :
NSString *thisSegmentTitle;
if ([self.dataSource respondsToSelector:@selector(titleForSegmentAtIndex:)]) {
thisSegmentTitle = [self.dataSource titleForSegmentAtIndex:index];
}
La méthode respondsToSelector : utilise un sélecteur, qui fait référence à l'identifiant d'une méthode après compilation. Vous pouvez fournir l'identifiant correct en utilisant la directive @selector() et en spécifiant le nom de la méthode.
Si la source de données de cet exemple implémente la méthode, le titre est utilisé ; sinon, le titre reste nul.