• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

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.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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
 

DeLue

Erdapfel
Registriert
25.11.08
Beiträge
2
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.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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