Als Fortsetzung meiner vorherigen Frage Trying to compare Any? with String Ich würde gerne wissen, was ich implementieren soll, um die Tabellenansicht mit den JSON-Antwortobjekte, die die Suchkriterien aus einem Textfeld Eingabe erfüllen.Suche JSON-Antwort zum reload tableView
Dies ist die aktuelle Funktion ist:
public func cargarDatos_filtrados(){
//fetching data from web api
Alamofire.request(URL_GET_DATA).responseJSON { response in
self.directorios.removeAll()
//getting json
if let json = response.result.value as? [[String:String]] {
print (json)
//traversing through all elements of the array
for dict in json {
let nom = dict["nombre"]
if (nom == self.texto_buscado.text){
//DO SOMETHING
}
self.directorios.append(DirectorioCompleto(
nombre: dict["nombre"],
apellidos: dict["apellidos"],
apodo: dict["apodo"],
cumple: dict["cumple"],
conyuge: dict["conyuge"],
cumple_conyuge: dict["cumple_conyuge"],
aniversario_bodas: dict["aniversario_bodas"],
empresa: dict["empresa"],
direccion_empresa: dict["direccion_empresa"],
tel_negocio: dict["tel_negocio"],
fecha_ingreso: dict["fecha_ingreso"],
num_rotario: dict["num_rotario"],
padrino: dict["padrino"],
direccion_casa: dict["direccion_casa"],
tel_casa: dict["tel_casa"],
celular: dict["celular"],
email: dict["email"],
email_privado: dict["email_privado"],
clasificacion: dict["clasificacion"],
imagen: dict["imagen"]
))
}
}
//displaying data in tableview
self.tableView.reloadData()
}
}
Rate, dass du self.directorios benutzt, um deine Tabellenansicht zu füttern. Zwei Fragen - Filtern Sie die Ergebnisse lokal? oder senden Sie eine Suchzeichenfolge an Ihre REST-API? Im ersten Fall müssen Sie ein Stammdatenarray verwalten und ein anderes Array verwenden, das gefilterte Daten gemäß Ihrem Suchtext enthält. In letzterem Fall erhalten Sie sowieso die richtigen Ergebnisse vom Server und laden Ihre Tabelle aus dem Array der Ergebnisse, die Sie vom Server erhalten haben. – Shripada
Nebenbei bemerkt ist Ihr DirectorioCompleto zu kompliziert und benötigt so viele Argumente. Sie können das Wörterbuch einfach übergeben und die gesamte Extraktion in DirectorioCompleto ausblenden. – Shripada
Behalten Sie zwei Instanzen von DirectorioCompleto-Arrays bei, ein Original und ein Filter, und verwenden Sie dann einfach .filter für Ihr gefiltertes Array. – koropok