前の質問の続きとしてTrying to compare Any? with String テキストフィールド入力の検索条件を満たすJSONレスポンスオブジェクトでtableviewをリロードするために実装する必要があるのは何ですか?リロードのためのJSON応答の検索tableView
これは現在の関数である:あなたのディレクトリに検索するための
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()
}
}
あなたはあなたのテーブルビューを供給するためにself.directoriosを使用していると思います。 2つのクエスチョン - ローカルで結果をフィルタリングしていますか?または検索文字列をREST APIに送信しますか?前者の場合は、マスターデータ配列を維持し、検索テキストごとに実際にフィルタリングされたデータを保持する別の配列を持つ必要があります。後者の場合は、とにかくサーバーから正しい結果を得て、サーバーから得た結果の配列からテーブルをロードします。 – Shripada
あなたのDirectorioCompletoは複雑すぎるため、非常に多くの議論が必要です。辞書を渡して、DirectorioCompleto内のすべての抽出を隠すことができます。 – Shripada
DirectorioCompletoアレイの2つのインスタンス(元のインスタンスとフィルタリングされたインスタンス)を1つずつ保持し、フィルタリングされたアレイに.filterを単に使用します。 – koropok