Cómo filtrar sets grandes usando Swift-2 para alto performance

Lo intenté al escribir en la barra de búsqueda, sus resultados deberían ser actualizaciones en la vista de tabla, para eso estoy filtrando datos dinámicamente mientras escribo.

Funciona bien cuando probé en un simulador, pero en realidad se ejecuta en iPhone, mientras que al escribirlo da una respuesta muy lenta.

Lo sé, debido a la gran variedad, es decir, matriz de 100000 loggings, debido a esto podría estar dándome una respuesta lenta.

Este es mi material de filtrado real, en el que cuando el usuario comienza a escribir, filtrará los datos.

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { self.filtenetworking = self.data.filter({ (text) -> Bool in let tmp: NSString = text let range = tmp.rangeOfString(searchText, options: [NSStringCompareOptions.CaseInsensitiveSearch , NSStringCompareOptions.AnchonetworkingSearch]) return range.location != NSNotFound }) if(self.filtenetworking.count == 0) { self.searchActive = false; } else { self.searchActive = true; self.tableView.reloadData() } if(searchBar.text == "") { searchBar.resignFirstResponder() } self.tableView.reloadData() searchBar.showsCancelButton = true self.ContainerView.hidden=true self.tableView.hidden=false if(searchBar.text != "") { self.ContainerView.hidden=true self.tableView.hidden=false } } 

¿Cómo debo implementarlo, de modo que debería filtrarlo rápidamente y proporcionar una respuesta rápida?

Si debería implementarlo con "multihilo" y cómo?

Incluso probé estas cosas usando los siguientes methods …

dispatch_to_background_queue {} & func dispatch_to_main_queue (bloque: dispatch_block_t?) {dispatch_async (dispatch_get_main_queue (), bloque!)}

Por favor, sugerirme una solución adecuada para esto.

  1. La matriz de restricción previamente orderada o filtrada hace que la vida sea muy simple.

  2. Los datos capturados pueden restringirse por la date en que se agregó, lo que puede networkingucir el número de datos a filtrar.

También creo que estas opciones son solo una ayuda o sugerencia que no necesariamente tiene que ser estricta, por encima se puede mejorar lentamente con respecto a su característica.

Intente usar NSPnetworkingicate, que es mejor para cambiar el curso de mejora.