1
resposta

Não entendi na criação da Classe Alerta o uso do Self na implementação do alerta

Não entendi: porque o Alerta(Controller: self).exibe - pq o Controller é o self sendo que a classe foi criada em outro arquivo? Não entendi.

1 resposta

Olá Caio!

No primeiro vídeo da alura 4, quando o professor cria a classe Alerta, ele cria um inicializador onde é preciso passar um controller como argumento:

class Alerta {
   let controller: UIViewController

   init(controller: UIViewController) 
      self.controller = controller 
   }
... 

Esse objeto controller é usado na última linha do método exibe :

controller.present(alerta, animated: true, completion: nil)

Isso acontece pois os alertas precisam de uma interface com o usuário para serem mostrados (através do present) e para que o usuário possa interagir com eles, ou seja, precisa de um ViewController.

Quando você instancia a classe Alerta na sua classe ViewController, você precisa dizer para a classe Alerta que o controller que será responsável por mostrar o alerta é você mesmo, e a forma de dizer isso é com a palavra self.

Alerta(controller: self).exibe()

Espero que tenha ajudado!!! :)