Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Está ocorrendo erro ao executar esse código do curso

ocorre erro 'NSUnknownKeyException: this class is not key value coding-compliant for the key titulo' ao executar codigo abaixo:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
        listaViagens = listaComTodasViagens
        if searchText != "" {
            let filtroListaViagem = NSPredicate(format: "titulo contains %@", searchText)
            let listaFiltrada:Array<Viagem> = (listaViagens as NSArray).filtered(using: filtroListaViagem) as! Array
            listaViagens = listaFiltrada
        }
        colecaoPacotesViagem.reloadData()
}

Como resolver isso? É algo referente ao ViagemDAO?

1 resposta
solução!

Oi Murilo, tudo bem?

A partir da versão 4 do Swift, para utilizar APIs do objective C (antiga linguagem da Apple) precisamos utilizar a anotação @objc.

Como estamos fazendo o casting de Array (Swift) para NSArray (objective C) para utilizar o método filter e passar o predicate, precisamos colocar essa anotação no atributo da classe que vamos filtrar.

Resumindo, para solucionar você precisa incluir essa anotação:

adicionando @objc no atributo titulo

Espero ter ajudado.