Ich habe eine UITableView, die eine lange Liste von Daten anzeigen. Verwenden Sie Abschnitte und folgen Sie der Suggestion von How to solve slow scrolling in UITableView.Langsames Laden von UITableView. Woher weißt du warum?
Der Fluss ist ein Haupt UITableView laden & drücken Sie eine Sekunde eine Zeile von dort auswählen.
Allerdings, mit 3000 Elementen dauert 11 Sekunden zu zeigen. Ich vermute zuerst von der Belastung der Datensätze von sqlite (ich lade die ersten 200 vor). Also habe ich es auf nur 50 geschnitten.
Egal ob ich nur 1 oder 500 vorlade, ist die Zeit gleich.
Die Ansicht ist aus IB und alles ist undurchsichtig.
Ich habe keine Ideen mehr, wie das Problem erkannt wird. Ich lasse das Instrument-Tool laufen, weiß aber nicht, was ich suchen soll.
Auch wenn der Benutzer eine Zelle aus dem vorherigen UITable auswählt, wird keine visuelle Rückmeldung angezeigt (dh: die Zelle wird nicht ausgewählt), also denkt er, dass er sie nicht auswählt und mehrmals versucht. Ist mit diesem Problem verbunden.
Was ist zu tun?
HINWEIS: Das Problem ist nur in dem eigentlichen Gerät:
- iPod Touch 2d Generation
- Mit FMDB als SQLite api
- tun das Caching in viewDidLoad
- Mit NSDictionary für das Caching
- Verwenden eines NSAutoreleasePool für den Caching-Teil.
- Nur die Zeilen-ID-Cachen & mac 4 Felder necesary die Zellendaten
- UIView mit Interface Builder gemacht zu zeigen, SDK 2.2.1
- Instruments sagen, dass ich 2,5 MB in dem Gerät verwenden
Ich nehme einen zweiten Blick in Instrumente und der teuerste Anruf ist fmresultset next (aus fdbm Bibliothek) – mamcx
Haben Sie analysiert, wie lange es dauert, um die SQL-Abfrage, die die Daten abruft, durchzuführen? – teabot
Keine Ahnung wie. Ich benutze SQL Server vorher und weiß über die Verwendung von Tools für diese, aber nicht für sqlite – mamcx