Ich verwende den FMDB-Wrapper, den ich benutzt habe dieser Code
%Vor%zum ersten Mal
%Vor%Methode funktioniert gut. in der Schleife zum zweiten Mal funktioniert es nicht
Fehler beim Aufruf von sqlite3_step (21: nicht genügend Arbeitsspeicher) rs
wie man dieses Problem löst
Prüfe auf%%%% /%
Es kann sein, dass die Datenbank freigegeben oder geschlossen wird.
================================================ ====
Verwenden Sie besser CoreData, um SQLite in Ihrer Anwendung zu implementieren.
Warum sollte eine externe Bibliothek verwendet werden, wenn in der Anwendung eine bessere interne Bibliothek verfügbar ist? Sie müssen Ihre sqlite-Tabelle nicht entfernen. Sie können Ihre vorhandene Datenbank problemlos zu CoreData migrieren.
Ich bekam denselben Fehler, weil [Datenbank schließen] vor Aufruf [resultSet next] aufgerufen wurde.
%Vor%Sollte [Datenbank schließen] nach Aufruf [resultSet next]
aufrufen %Vor%Ich hatte den gleichen Fehler. Also im Grunde hatte ich zwei Funktionen, sagen wir func1 () und func2 ().
In func1 () habe ich folgendes gemacht:
1.) Erzeugen der Ergebnismenge. 2.) Drucken des Ergebnisses (zum Testen) 3.) Aufruf von func2 () mit dem Ergebnis als Argument.
In func2 () war ich mit dem Fehler konfrontiert, während ich versuchte, die Ergebnismenge von func1 () zu durchlaufen.
Wenn ich den Code in func1 () (Schritt 2) entfernt habe, war der Fehler weg!
Um das Problem mit dem nicht ausreichenden Arbeitsspeicher zu beheben, musste ich meinen Code wie unten beschrieben einstellen, um am Ende der Schleife zu überprüfen, ob Schleife == LocationCount dann die Schleife unterbricht. Wenn ich es weggelassen hätte, würde es [rs next] geben, was mir dann den Fehler beim Aufruf von sqlite3_step (21: out of memory) rs geben würde. Ich würde empfehlen, etwas ähnliches zu tun, damit [rs next] nicht mehr als das, was für Ihre Funktion erforderlich ist.
%Vor%Tags und Links objective-c ios4 sqlite3