• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

IPhone SQLite Statements

DeLue

Erdapfel
Registriert
25.11.08
Beiträge
2
Hi,
ich entwickle Apps für´s IPhone, benutze für die Datenhaltung SQLite und habe folgendes Problem:
In einer Rekursionsmethode (ist leider notwendig) werden in einer Schleife die Results einer select-Abfrage verarbeitet. Aus der Schleife heraus wird dann nach Bedarf die Methode recursiv aufgerufen. Soweit funzt alles. Wenn die Rekursion abgeschlossen ist, Finalisiere ich das SQLite-Statement mit finalize. Trotzdem bekomme ich beim Beenden der App die Fehlermeldung, dass die DB nicht geschlossen werden kann, da das Statement nicht finalisiert wurde. Ich wäre mächtig dankbar für einen Hinweis.
 
In einer Rekursionsmethode (ist leider notwendig)
Nein. Falls Du keine Ackermann Funktion programmierst, ist sie das nicht. Vielleicht hilft es, wenn Du auf Iteration umbaust
Soweit funzt alles.
Das tut mir leid
Wenn die Rekursion abgeschlossen ist, Finalisiere ich das SQLite-Statement mit finalize. Trotzdem bekomme ich beim Beenden der App die Fehlermeldung, dass die DB nicht geschlossen werden kann.

Das kann alles mögliche sein. Prüftst Du alle Result Werte? Es kann ein dummer Fehler, oder ein Designfehler sein.

Kannst Du mal Code posten?

Alex
 
Nein. Falls Du keine Ackermann Funktion programmierst, ist sie das nicht. Vielleicht hilft es, wenn Du auf Iteration umbaust

Das tut mir leid


Das kann alles mögliche sein. Prüftst Du alle Result Werte? Es kann ein dummer Fehler, oder ein Designfehler sein.

Kannst Du mal Code posten?

Alex

Vielen Dank für die schnelle Antwort.
Ich habe es mit einer Iteration versucht und dabei festgestellt, dass auch hier ein finalize-Problem auftaucht. Auf der Suche danach fand ich heraus, dass die dealloc-Methode im Delegate nicht abgearbeitet wurde. Wenn ich dies explizit befehle, können die Statements finalisiert werden. Aber ein expliziter Aufruf der dealloc-Methode ist ja eigentlich nicht notwendig. Ich werde also noch einen Fehler haben, den ich suchen muss.
 
Regel Nummer Eins:

In eine dealloc Methode gehört nur das Aufräumen des Speichers, sonst nichts!

Solche Seiteneffekte wie Dein Finanlize gehören da definitiv NICHT rein. Gerade bei Delegates weiss man nicht immer, wann sie deallziert werden.

Alex