Cómo detener la advertencia para UIView puede no responder al selector

Tengo una class que tiene una UIView como propiedad. A veces paso un UILabel; a veces un UITextField. No importa qué pase, quiero que la class establezca el text. Actualmente estoy haciendo esto, que funciona:

if ([self.viewToUpdate respondsToSelector:@selector(setText:)] && !self.newAnswer) [self.viewToUpdate setText:[[self.choices objectAtIndex:indexPath.row] text]]; 

El problema es que esto da una advertencia, porque aunque estoy revisando respondsToSelector , Xcode no sabe que mi UIView responderá a setText: ¿Cómo puedo eliminar esta advertencia?

Sé que puedo verificar específicamente si es un campo de text o una label, y luego lanzar a un campo de text o una label, respectivamente, pero esto sería un dolor, y si alguna vez tengo más types de vistas, tendría para agregar algunas líneas de código más para cada una.

Pensé en crear mi propio protocolo, y luego tener mi class id como el tipo para viewToUpdate … pero, por supuesto, UITextField y UILabel no se conformarían con ese protocolo …

intente simplemente lanzarlo como un id:

 if ([self.viewToUpdate respondsToSelector:@selector(setText:)] && !self.newAnswer) [(id)self.viewToUpdate setText:[[self.choices objectAtIndex:indexPath.row] text]];