Casting remetente para IBAction como id ou classe específica

Vejo duas abordagens para lidar com objetos remetentes nas instruções IBAction. A primeira é assim:

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

Outro parece mais fácil:

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

Geralmente, opto pela versão 2. Algum motivo específico para preferir um estilo ao outro, se você souber que apenas um botão estará enviando para esse métod

Eu posso ver onde a versão 1 é boa sequalquer cois pode ser um remetente, como um botão, alternar ou deslizar, etc. Mas se você estiver procurando porUIButton propriedades comotag não fará muita diferença se o remetente não for umUIButton. Portanto, a versão 2 parece muito mais direta.

Pensei em ver se estou perdendo um motivo óbvio para preferir a versão 1.

questionAnswers(1)

yourAnswerToTheQuestion