iPhone SDK: Daten auslesen
Nachdem Sie jetzt einen Text mit dem iPhone SDK gespeichert haben erfahren Sie hier wie Sie die Texte auslesen und weiterverarbeiten können. Die Voraussetzung für dieses Tutorial ist der voherige Artikel iPhone SDK Daten speichern. Starten Sie Xcode und öffnen Sie das bestehende Projekt. Gehen Sie dann in die Implementierungsdatei ( *.m ) und suchen Sie die Methode (void)applicationDidFinishLaunching. In dieser Methode wird der Code ausgeführt nachdem die Applikation gestartet wurde. Da wir in diesem Fall das Text View direkt am Anfang ohne besonderen manuell ausgeführten Event füllen wollen eignet sich diese Methode perfekt.
Damit die Applikation sauber und stabil läuft sollte man beim Einlesen von Daten immer prüfen ob diese Datei auch wirklich vorhanden ist. Erstellen Sie hierzu eine boolsche Variable mit der zuerst überprüft wird ob die Datei vorhanden ist, ist diese nicht vorhanden bekommt die Variable den Wert false und die If-Anweisung indem die Datei eingelesen wird, wird erst gar nicht ausgeführt.
BOOL fExists = [[NSFileManager defaultManager] fileExistsAtPath:[NSHomeDirectory() stringByAppendingString:@"test.txt"]];
Mit der obigen Funktion fileExistsAtPath kann geprüft werden ob die angegebene Datei vorhanden ist. Für den Pfad zu der Textdatei wird wieder stringByAppendingString verwendet, natürlich könnte man eine globale Variable erstellen um etwas Code zu sparen und die ganze Sache übersichtlicher zu machen, da die Applikation allerdings relativ klein ist wird es nicht gemacht.
Jetzt wird die Variable fExists mit einer if-Anweisung überprüft hat die Variable den Wert true wird der Text mit folgendem Code in das Text View geladen.
if(fExists) {
tvInput.text = [NSString stringWithContentsOfFile[NSHomeDirectory() stringByAppendingString:@"test.txt" encoding NSUTF8StringEncoding error:nil];
}
Um das Ganze zu testen können Sie jetzt das Programm starten, einen Text in das Text View eingaben, anschließend das Programm neustarten und dann sollte der vorher eingegebene Text erscheinen.