Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro #selector ao criar botão programaticamente

Olá, quando crio um UIBarButtonItem programaticamente conforme código abaixo o compilador apresenta o erro "Argument of '#selector' refers to instance method 'showNewItem()' that is not exposed to Objective-C".

override func viewDidLoad() {
        let newItemButton = UIBarButtonItem(title: "new item",
                                         style: UIBarButtonItemStyle.plain,
                                         target: self,
                                         action: #selector(showNewItem))  <---- Erro
        navigationItem.rightBarButtonItem = newItemButton
    }

    func showNewItem() {
        print("new item...")
    }
 }

Fiz algumas pesquisas e adicionei ao método showNewItem o @objc, e passou a funcionar.

@objc
func showNewItem() {
  print("new item...")
}

Isso é uma boa prática? Existe outra solução?

Estou utilizando o Xcode 9.2.

Abraços.

2 respostas

Já entendi o que ocorreu , estou utilizando o Swift 4, para compilar o projeto. Por este motivo ocorreu o erro, alterei para Swift 3.2 e está funcionando conforme explicado no curso.

solução!

Boa Danilo :D