Si un método de un protocolo se marca como opcional, debe comprobar si un objeto implementa este método antes de intentar llamarlo.
Como un ejemplo, la vista de gráfico circular puede probar para el método título segmento como esto:
NSString *thisSegmentTitle;
if ([self.dataSource respondsToSelector:@selector(titleForSegmentAtIndex:)]) {
thisSegmentTitle = [self.dataSource titleForSegmentAtIndex:index];
}
El respondsToSelector: método utiliza un selector, que hace referencia al identificador de un método después de la compilación. Puede proporcionar el identificador correcto utilizando la directiva @selector() y especificando el nombre del método.
Si la fuente de datos en este ejemplo implementa el método, se usa el título; de lo contrario, el título permanece nulo.
en cuenta que: La directiva '' '' '' @optional y '' '@Required' '' se aplica a cualquier método que le siguen. – Wayne