Ich verwende UISearchController
für die Suche in einem Array von 86.111 Objekte (eigentlich suche ich in der name
Eigenschaft jedes Objekts).UISearchController macht UI freeze
Aus irgendeinem Grund, wenn ich auf der Suchleiste zu tippen beginnen, friert die Benutzeroberfläche für ein paar Sekunden ein und beginnt dann wieder zu arbeiten (z. B. friert die Tastatur auf einem Brief usw.).
Ich denke, es ist, weil meine Benutzeroberfläche wirklich groß ist - ich kann verstehen, warum es sehr langsam sucht, aber ich kann nicht verstehen, warum es die Benutzeroberfläche einfriert (ist es nicht auf einem Hintergrundthread?).
mir wirklich glücklich sein, wenn jemand in der Lage sein wird, mir, viele
Ihnen zu helfen!
Ich habe versucht, 'NSOperationQueue' auf meinem 'searchResults' Array-Setter zu verwenden, aber wie kann ich das Array auf einem Hintergrund-Thread' zurückgeben '? –
Wenn Sie 'NSOperationQueue' verwenden, können Sie Code mit' [NSOperationQueue mainQueue] 'im Hauptverzeichnis ausführen. Ich aktualisierte auch meine Antwort mit einigen grundlegenden Beispiel mit 'dispatch_async' – Jelly
Ja, ich weiß, aber wenn' searchResults' Getter aufgerufen wird (wo ich das Array mit 'NSPredicate' filtern) muss ich das Array zurückgeben, aber wenn es ist Wie kann ich in einem Hintergrundthread das korrekte und aktualisierte Array zurückgeben? –