Remitente de envío a IBAction como id o clase específica

Veo dos enfoques para manejar los objetos del remitente en las declaraciones de IBAction. El primero se ve así:

-(IBAction)buttonPressed:(id)sender{
 UIButton*someButton=(UIButton*)sender;
 //do something with someButton.tag or whatever
 }

Otra parece más fácil:

 -(IBAction)buttonPressed:(UIButton*)sender{
  //do something with sender.tag or whatever
  }

Por lo general, opto por la versión 2. ¿Alguna razón en particular para preferir un estilo sobre el otro, si sabe que solo se enviará un botón a este método?

Puedo ver dónde la versión 1 es buena sicualquier cos puede ser un remitente, como un botón, interruptor o control deslizante, etc. Pero si está buscandoUIButton propiedades comotag no hará mucha diferencia si su remitente no es unUIButton. Entonces, la versión 2 parece mucho más sencilla.

Solo pensé en ver si me faltaba una razón obvia para preferir la versión 1.

Respuestas a la pregunta(1)

Su respuesta a la pregunta