Thema Datum  Von Nutzer Rating
Antwort
26.05.2011 13:55:17 The Defender
NotSolved
26.05.2011 15:45:22 The Defender
NotSolved
Rot Start sequence AppDidFinishLaunching vs. ViewDidLoad
06.06.2011 12:34:37 Georg
NotSolved

Ansicht des Beitrags:
Von:
Georg
Datum:
06.06.2011 12:34:37
Views:
1440
Rating: Antwort:
  Ja
Thema:
Start sequence AppDidFinishLaunching vs. ViewDidLoad

Hi Defender,

du bist auf ein typisches Problem gestoßen, bei dem die Initalisierung (AppDelegate) noch nicht abgeschlossen ist, während einer der ViewController bereits Daten requested.

Im Falle einer SQLite Datenbank tritt das Problem im Normalfall auf, wenn Du eine neue Version Deiner Datenbank mit der App testen willst und die alte App aus dem Simulator löscht (Oder das Verzeichnis im Finder).

Nachdem Dein ViewController anscheinend ausgeführt wird, bevor der App-Delegate fertig ist, versucht der View-Controller auf die Datenbank zuzugreifen, findet sie nicht-- und das endet dann in dem Problem das Du eine Datenbank mit 0 KB (einen leeren DB-File) im Verzeichnis wiederfindest.

Du überprüfst im AppDelegate aller wahrscheinlichkeit nach ob die Datenbank existiert und Sie kopierst wenn nicht vorhanden. 
In den meisten Fällen tritt der von Dir beschriebene Fehler auf, wenn die ViewController-XIB über den Interface-Builder zusammen gestöpselt, connected sind.

Wie auch immer, auch in anderen Szenarios kannst Du Dir nicht sicher sein das diese Race-Condition auch wirklich erfüllt ist. Deswegen mein Lösungsvorschlag in Deinem Entry-ViewController einen Standard-Screen zu zeigen mit einer Aktivitätsanzeige und den "echten" Screen einzublenden, sobald Dein App-Delegate gelaufen ist. (Dies machst Du natürlich über den App-Delegate)

Hatte dieses Problem selbst vor kurzem. Irgendein Posting auf StackoverFlow hat dies vorgeschlagen(sorry kein Link parat) und es funktioniert jetzt wieder wie es sein soll - Mein ViewController "wartet" sozusagen bis die Initialisierung, wenn nötig abgeschlossen ist.

Hoffe das hilft Dir ein bisschen weiter. Lass mich wissen wies geht mit der Problemlösung.

 

Besten Gruß

Georg


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.05.2011 13:55:17 The Defender
NotSolved
26.05.2011 15:45:22 The Defender
NotSolved
Rot Start sequence AppDidFinishLaunching vs. ViewDidLoad
06.06.2011 12:34:37 Georg
NotSolved