Suche senden
Hochladen
Apple iOS - Daten
•
0 gefällt mir
•
689 views
M
messeb
Folgen
Umgang mit Daten unter Apple iOS: Text, Plist, XML, SQLite, CoreData
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 42
Empfohlen
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
Ulrike Schwinn
Entity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
André Krämer
Oracle12c für Entwickler
Oracle12c für Entwickler
Carsten Czarski
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
SHI Search | Analytics | Big Data
FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch
FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch
Verein FM Konferenz
MongoDB - Riesige Datenmengen schemafrei verwalten
MongoDB - Riesige Datenmengen schemafrei verwalten
Tobias Trelle
Blog von luca greuter powerpoint
Blog von luca greuter powerpoint
lupa1997
Alicante Vivo - Daniel Moya
Alicante Vivo - Daniel Moya
rrruuubbb
Empfohlen
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
Ulrike Schwinn
Entity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
André Krämer
Oracle12c für Entwickler
Oracle12c für Entwickler
Carsten Czarski
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
SHI Search | Analytics | Big Data
FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch
FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch
Verein FM Konferenz
MongoDB - Riesige Datenmengen schemafrei verwalten
MongoDB - Riesige Datenmengen schemafrei verwalten
Tobias Trelle
Blog von luca greuter powerpoint
Blog von luca greuter powerpoint
lupa1997
Alicante Vivo - Daniel Moya
Alicante Vivo - Daniel Moya
rrruuubbb
Das Silvester
Das Silvester
Esme Loli Jackson
Titulo2007
Titulo2007
Mónica Pilar Pinto Verdugo
#YesWeCode Deck
#YesWeCode Deck
Jen Kim
Schuljahrbuch? So geht's!
Schuljahrbuch? So geht's!
BücherKammer
DGSMTech auf der Interschutz 2015 - Standpräsentation
DGSMTech auf der Interschutz 2015 - Standpräsentation
Stefan Martini
Ost 1 10898 73
Ost 1 10898 73
zeemorg
Visita Laureles Noviembre 2007
Visita Laureles Noviembre 2007
ecologico
Visual illusions Kinderuni 2013
Visual illusions Kinderuni 2013
Niia Nikolova
El periodismo y la cultura del cambio
El periodismo y la cultura del cambio
grmadryn
Presentación Red Merlin Guerin
Presentación Red Merlin Guerin
daniadmin
Tema 3 Tecno Audiovisual
Tema 3 Tecno Audiovisual
Emilio Fernández Peña
Instructions MINOX Wildfire DTC 600 | Optics Trade
Instructions MINOX Wildfire DTC 600 | Optics Trade
Optics-Trade
Schwerpunktschule
Schwerpunktschule
ebr-hg
U1
U1
Raul Barroso
Fort- und Weiterbildungsmöglichkeiten für Lehrer
Fort- und Weiterbildungsmöglichkeiten für Lehrer
BeKat
Residuos
Residuos
manusoci
3 Umpire-System (Fortgeschrittene)
3 Umpire-System (Fortgeschrittene)
Raoul Machalet
Tics En Educación
Tics En Educación
jjleer
Mensaje de Palabra Rema 2010
Mensaje de Palabra Rema 2010
Centro de Vida Victoriosa (Iglesia)
Gandhi Elhombredelaverdaderaresistencia
Gandhi Elhombredelaverdaderaresistencia
francklin castillo
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
Icinga
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
schellsoft
Weitere ähnliche Inhalte
Andere mochten auch
Das Silvester
Das Silvester
Esme Loli Jackson
Titulo2007
Titulo2007
Mónica Pilar Pinto Verdugo
#YesWeCode Deck
#YesWeCode Deck
Jen Kim
Schuljahrbuch? So geht's!
Schuljahrbuch? So geht's!
BücherKammer
DGSMTech auf der Interschutz 2015 - Standpräsentation
DGSMTech auf der Interschutz 2015 - Standpräsentation
Stefan Martini
Ost 1 10898 73
Ost 1 10898 73
zeemorg
Visita Laureles Noviembre 2007
Visita Laureles Noviembre 2007
ecologico
Visual illusions Kinderuni 2013
Visual illusions Kinderuni 2013
Niia Nikolova
El periodismo y la cultura del cambio
El periodismo y la cultura del cambio
grmadryn
Presentación Red Merlin Guerin
Presentación Red Merlin Guerin
daniadmin
Tema 3 Tecno Audiovisual
Tema 3 Tecno Audiovisual
Emilio Fernández Peña
Instructions MINOX Wildfire DTC 600 | Optics Trade
Instructions MINOX Wildfire DTC 600 | Optics Trade
Optics-Trade
Schwerpunktschule
Schwerpunktschule
ebr-hg
U1
U1
Raul Barroso
Fort- und Weiterbildungsmöglichkeiten für Lehrer
Fort- und Weiterbildungsmöglichkeiten für Lehrer
BeKat
Residuos
Residuos
manusoci
3 Umpire-System (Fortgeschrittene)
3 Umpire-System (Fortgeschrittene)
Raoul Machalet
Tics En Educación
Tics En Educación
jjleer
Mensaje de Palabra Rema 2010
Mensaje de Palabra Rema 2010
Centro de Vida Victoriosa (Iglesia)
Gandhi Elhombredelaverdaderaresistencia
Gandhi Elhombredelaverdaderaresistencia
francklin castillo
Andere mochten auch
(20)
Das Silvester
Das Silvester
Titulo2007
Titulo2007
#YesWeCode Deck
#YesWeCode Deck
Schuljahrbuch? So geht's!
Schuljahrbuch? So geht's!
DGSMTech auf der Interschutz 2015 - Standpräsentation
DGSMTech auf der Interschutz 2015 - Standpräsentation
Ost 1 10898 73
Ost 1 10898 73
Visita Laureles Noviembre 2007
Visita Laureles Noviembre 2007
Visual illusions Kinderuni 2013
Visual illusions Kinderuni 2013
El periodismo y la cultura del cambio
El periodismo y la cultura del cambio
Presentación Red Merlin Guerin
Presentación Red Merlin Guerin
Tema 3 Tecno Audiovisual
Tema 3 Tecno Audiovisual
Instructions MINOX Wildfire DTC 600 | Optics Trade
Instructions MINOX Wildfire DTC 600 | Optics Trade
Schwerpunktschule
Schwerpunktschule
U1
U1
Fort- und Weiterbildungsmöglichkeiten für Lehrer
Fort- und Weiterbildungsmöglichkeiten für Lehrer
Residuos
Residuos
3 Umpire-System (Fortgeschrittene)
3 Umpire-System (Fortgeschrittene)
Tics En Educación
Tics En Educación
Mensaje de Palabra Rema 2010
Mensaje de Palabra Rema 2010
Gandhi Elhombredelaverdaderaresistencia
Gandhi Elhombredelaverdaderaresistencia
Ähnlich wie Apple iOS - Daten
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
Icinga
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
schellsoft
C# Workshop - File Operations
C# Workshop - File Operations
Qiong Wu
Apple iOS - Webservices
Apple iOS - Webservices
messeb
Node.js
Node.js
Sebastian Springer
Windows Powershell
Windows Powershell
Thomas Wilhelm Wiefel
HTML5 Storage
HTML5 Storage
adesso AG
Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloud
inovex GmbH
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)
Gerrit Beine
Digitisation and Online Presentation of Archival Material
Digitisation and Online Presentation of Archival Material
ICARUS - International Centre for Archival Research
SysDB – System DataBase — Ein Datenaggregator für System-Informationen
SysDB – System DataBase — Ein Datenaggregator für System-Informationen
SysDB Project
JSF und JPA effizient kombinieren (W-JAX 2011)
JSF und JPA effizient kombinieren (W-JAX 2011)
Michael Kurz
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
Daniel Havlik
MongoDB für Java-Programmierer
MongoDB für Java-Programmierer
Uwe Printz
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
Uwe Printz
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Karin Patenge
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Peter Ramm
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence Api
Christian Baranowski
Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne Dich
Oliver Lemm
TechTalk - Share point for internet sites part 2
TechTalk - Share point for internet sites part 2
Samuel Zürcher
Ähnlich wie Apple iOS - Daten
(20)
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
C# Workshop - File Operations
C# Workshop - File Operations
Apple iOS - Webservices
Apple iOS - Webservices
Node.js
Node.js
Windows Powershell
Windows Powershell
HTML5 Storage
HTML5 Storage
Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloud
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)
Digitisation and Online Presentation of Archival Material
Digitisation and Online Presentation of Archival Material
SysDB – System DataBase — Ein Datenaggregator für System-Informationen
SysDB – System DataBase — Ein Datenaggregator für System-Informationen
JSF und JPA effizient kombinieren (W-JAX 2011)
JSF und JPA effizient kombinieren (W-JAX 2011)
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
MongoDB für Java-Programmierer
MongoDB für Java-Programmierer
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence Api
Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne Dich
TechTalk - Share point for internet sites part 2
TechTalk - Share point for internet sites part 2
Apple iOS - Daten
1.
iOS Daten Sebastian Meßingfeld 23.05.2013 1© FH
AACHEN | Sebastian Meßingfeld
2.
Inhalt 2© FH AACHEN
| Sebastian Meßingfeld • Dateien • Dateisystem • Zugriff auf Dateien • Objektserialisierung • iCloud • Datenbanken • SQLite • Core Data Framework • Aufgaben
3.
Dateien 3© FH AACHEN
| Sebastian Meßingfeld
4.
Dateien Dateisystem • alles ist
eine Datei • auch die Datenbank (keine Client/Server Struktur) • Dateisystem einer Anwendung: • *.app: die eigentliche Anwendung (readonly) • Documents: für Nutzerdaten • Library: für sonstige Anwendungsdaten • tmp: temporäre Dateien 4© FH AACHEN | Sebastian Meßingfeld
5.
Dateien Textdateien • Lesen und
Schreiben von/aus Dateien im App- Dateisystem möglich • Byte-Stream Ein-/Ausgabe • Zeichenbasierte Ein-/Ausgabe • Verarbeitung von Dateiinhalten über String- Operationen • keine „native“ Unterstützung für strukturierte „Plain-Text“-Dateiinhalte • CSV 5© FH AACHEN | Sebastian Meßingfeld
6.
Dateien Textdateien - Beispiele NSString
*path = [[NSBundle mainBundle] ! ! ! ! ! pathForResource:@"kategorien"ofType:@"txt"];" " " --" " // Inhalt in einem Byte-Puffer" NSData *databuffer = [NSData dataWithContentsOfFile: path];" " " --" " // Zeichenbasierte Verarbeitung" NSString *content = [NSString stringWithContentsOfFile:path ! ! ! !encoding:NSUTF8StringEncoding error:nil];" " // Array mit Zeilen aus Datei" NSArray *lines = [content componentsSeparatedByCharactersInSet: ! ! ! [NSCharacterSet newlineCharacterSet]]; 6© FH AACHEN | Sebastian Meßingfeld
7.
Dateien XML-Dateien • SAX- und
DOM-Parsing Unterstützung vorhanden • Simple API for XML (SAX) • ereignisgesteuert • Callback-Funktionen für Ereignisse (z.B. Startelement) • Document Object Model (DOM) • direkter Zugriff auf Elemente • mittels libxml2 • C-basierte Implementierung • beide Lösungen weniger alltagstauglich • besser Dritt-Bibliothek: z.B. TouchXML 7© FH AACHEN | Sebastian Meßingfeld
8.
Dateien Property Lists (*.plist) •
XML-Struktur • definierte XML-Tags für Standard-Datentypen • <string> • <array> • Lesen und Schreiben von Datenstrukturen • Arrays • Dictionary • „nur“ für Standard-Datentypen • NSUserDefaults: Key/Value - Speicher mit gleichzeitiger Synchronisation in Property List! 8© FH AACHEN | Sebastian Meßingfeld
9.
Dateien Property Lists (*.plist)
- Beispiel Beispiel: // Pfad zur Datei" NSString* path = [[NSBundle mainBundle] pathForResource:@"kategorien" ofType:@"plist"];" " // plist in Array laden" NSArray* kategorien = [NSArray !arrayWithContentsOfFile:path];" " // Ausgabe " for (NSString* kategorie in kategorien) {" NSLog(@"%@", kategorie);" } 9© FH AACHEN | Sebastian Meßingfeld
10.
Dateien Objektserialisierung • Unterstützung in
Cocoa Touch • akt. Objektzustand kann gespeichert werden • mit „Unter“-Objekten (Komposition) • Object-Graph (gleich mehr) • Serialisierung in P-List oder Binär-String • Implementierung von encode / decode Methode notwendig, die Eigenschaften sichert / wiederherstellt 10© FH AACHEN | Sebastian Meßingfeld
11.
Dateien Objektserialisierung - Beispiel //
Instanzmethode: Objekt serialisieren" - (void)encodeWithCoder:(NSCoder *)aCoder" {" [aCoder encodeObject:self.beschreibung forKey:@“Beschreibung"];" [aCoder encodeObject:self.preis forKey:@“preis"];" }" " // Instanzmethode (Kontruktur): Objekt deserialisieren" - (id)initWithCoder:(NSCoder *)aDecoder" {" self = [super init];" if (nil != self) {" self.beschreibung = [aDecoder decodeObjectForKey:@”beschreibung"];" self.preis = [aDecoder decodeObjectForKey:@”preis"];" }" return self;" }" " // Objekt serialisieren [NSKeyedArchiver archivedDataWithRootObject:objekt];" " // Objekt deserialisieren" [NSKeyedUnarchiver unarchiveObjectWithData:userData];" " 11© FH AACHEN | Sebastian Meßingfeld
12.
Dateien Andere Dateiformate • häufig
verwendete Formate: CSV, JSON • keine Parser direkt in Cocoa Touch vorhanden • Verwendung von Dritt-Bibliotheken • CSV: https://github.com/davedelong/CHCSVParser • JSON: https://github.com/johnezang/JSONKit 12© FH AACHEN | Sebastian Meßingfeld
13.
Dateien iCloud • (automatische) Speicherung
von Daten auf externen Servern • Daten • Dokumente / Dateien • Key / Value – Speicher (ähnlich NSUserDefaults) • Synchronisation • zwischen gleichen Anwendungen auf unterschiedlichen Geräten • zwischen unterschiedlichen Anwendungen, auch Desktop-Anwendungen 13© FH AACHEN | Sebastian Meßingfeld
14.
Datenbanken 14© FH AACHEN
| Sebastian Meßingfeld
15.
Datenbanken SQLite • Built-In Unterstützung
vorhanden • über C-Schnittstelle ansprechbar (libsqlite3) • eigene, extern erstellte SQLite-Datenbank kann mit ausgeliefert werden • kein ORM dafür in Cocoa Touch vorhanden • CRUD-Operationen müssen über SQL-Statements selbst erstellt werden 15© FH AACHEN | Sebastian Meßingfeld
16.
Datenbanken SQLite - Beispiel NSString*
path = [[NSBundle mainBundle] pathForResource:@“Data" ofType:@"sqlite"];" " sqlite3 *database;" sqlite3_stmt *statement;" " NSString *sql = @"SELECT name FROM Artikel ORDER BY name ASC";" " int result = sqlite3_open([path UTF8String], &database);" " if(SQLITE_OK == result)" {" NSLog(@"Could open database");" }" " if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) { " " while (sqlite3_step(statement) == SQLITE_ROW) {" NSString *message = [NSString stringWithUTF8String:(char *) ! ! ! ! ! ! !sqlite3_column_text(statement, 0)];" " // Mach' was" }" " sqlite3_finalize(statement);" } 16© FH AACHEN | Sebastian Meßingfeld
17.
Core Data 17© FH
AACHEN | Sebastian Meßingfeld „ ... Core Data is a schema-driven object graph management and persistence framework.“ Apple
18.
Datenbanken Core Data • ORM
Framework von Apple • und ein bisschen mehr ... • von MacOS X zu iOS (ab 3.0) migriert • wie andere APIs bisher auch • keine Neu-Entwicklung für iOS • Erfahrung in iOS-Programmierung nötig • kein Einsteiger-Thema 18© FH AACHEN | Sebastian Meßingfeld
19.
Datenbanken Core Data -
Was kann Core Data? • Aufbau einer datengetriebenen Anwendung: • Core Data bietet für einzelne Funktionalitäten Schnittstellen / Implementierung an • Struktur ist vorgegeben • Anpassungen der einzelnen Punkte möglich 19© FH AACHEN | Sebastian Meßingfeld Speichern Rückgängig Wiederholen Validierung Lazy Loading Suche Daten- speicher Anwendung View 1 View 2 Speichern Rückgängig Wiederholen Validierung Lazy Loading Suche Daten- speicher Anwendung View 1 View 2 Core DataEntwickler
20.
Datenbanken Core Data -
Aufbau • Verwaltung als Objekt-Graph • Objekte sind mit einem Kontext (Blackbox) verbunden • Kontext ist für das Life-Cycle Management der zugehörigen Objekte verantwortlich • Beziehungen der Objekte zueinander • Persistierung 20© FH AACHEN | Sebastian Meßingfeld Kategorie Artikel Artikel Artikel
21.
Datenbanken Core Data -
Erzeugung von Entitäten 21© FH AACHEN | Sebastian Meßingfeld • Modellierung von Entitäten und deren Beziehungen in Xcode • automatische Generierung von ObjC-Klassen aus Entitäten möglich • Zugriff im Code über Core-Data Schnittstellen
22.
Datenbanken Core Data -
Erzeugung von Entitäten 22© FH AACHEN | Sebastian Meßingfeld
23.
Datenbanken Core Data -
Speichern von Datensätzen 23© FH AACHEN | Sebastian Meßingfeld • Erzeugung einer Instanz einer Datenbank Entität • „Casten“ auf zugehörige ObjC Klasse • Zuweisung von Werte • ggf. Validierung • Speichern des Kontextes
24.
Datenbanken Core Data -
Speichern von Datensätzen " // Artikel erzeugen" Artikel *newArt = (Artikel *)[[NSManagedObject ! ! !alloc]initWithEntity:@”Artikel" ! ! ! !insertIntoManagedObjectContext:context];" " // Werte zuweisen" newArt.artikelname = @”Name";" newArt.artikelpreis = @1.1;" newArt.artikelbild = @”xxx.jpg";" newArt.artikelbeschreibung = @”Beschreibung";" newArt.kategorie = (Kategorie *)newKat;" " // Kontext speichern" [context save:&error]; 24© FH AACHEN | Sebastian Meßingfeld
25.
Datenbanken Core Data –
Laden von Datensätzen 25© FH AACHEN | Sebastian Meßingfeld • Erstellen eines Entitäts-Modells für abzufragenden Typen • Abfrage gegen Persistierungsschicht erstellen • mit Filtern • mit Sortierung • Abfrage ausführen • Ergebnis-Array enthält Objekte vom Typen
26.
Datenbanken Core Data –
Laden von Datensätzen // Entitäts Modell erstellen" NSEntityDescription *entitydescArtikel = ! ! ![NSEntityDescription entityForName:@"Artikel" ! !inManagedObjectContext:context];" " // Datenbank abfragen" NSFetchRequest *request = [[NSFetchRequest alloc]init] [request setEntity:entitydescArtikel];" " // Ergebnis verarbeiten" NSArray *matchingData = [context! ! ! ! ! !executeFetchRequest:request error:nil];" " if (matchingData.count > 0) {" for (Artikel *artikel in matchingData) {" // Mach‘ was" }" } 26© FH AACHEN | Sebastian Meßingfeld
27.
Datenbanken Core Data –
Persistierungsschicht 27© FH AACHEN | Sebastian Meßingfeld • bereits implementiert • für den Entwickler i.d.R nicht „sichtbar“ • wird aus erzeugten Entitäten generiert • kann verschiedene Ausprägungen haben • SQLite • XML • eigener Datenspeicher kann angegeben werden • muss Beziehung der Entitäten beachten
28.
Aufgaben (mit Einsatz von
Core Data) 28© FH AACHEN | Sebastian Meßingfeld
29.
Aufgaben Objektmodell 29© FH AACHEN
| Sebastian Meßingfeld
30.
Aufgaben Befüllen der Persistierungsschicht
unter Core Data • im Code • einmalig, beim ersten Start der Anwendung • aus Dateien (CSV, XML, ...) • mit der App mitgeliefert • Download • modifizieren der Persistierungsschicht (*.sqlite) • Anwendung wird modelliert + erstellt • Datenbank • wird aus fertigen App entnommen • mit den Daten befüllt • App wird mit Angabe der gefüllten DB neu erstellt 30© FH AACHEN | Sebastian Meßingfeld
31.
Aufgaben Befüllen der Persistierungsschicht
unter Core Data • modifizieren der Persistierungsschicht (*.sqlite) • eigene SQLite-Datenbank i.d.R nicht verwendbar • Aufbau durch Core Data Model vorgegeben (Spalten, Keys, ...) • „Lösung“: • Mac-Anwendung mit gleichem Core Data Model erstellen • Datenbank der Mac-Anwendung befüllen • Datenbank für iOS-App verwenden 31© FH AACHEN | Sebastian Meßingfeld
32.
Aufgaben Befüllen der Persistierungsschicht
unter Core Data 32© FH AACHEN | Sebastian Meßingfeld
33.
Aufgaben Daten-Export aus Datenbank:
CSV • keine Unterstützung in CocoaTouch vorhanden • für einzelne Tabelle mit Ausgabe von formatierten Strings möglich 33© FH AACHEN | Sebastian Meßingfeld
34.
Aufgaben Daten-Export aus Datenbank:
CSV " for (NSArray *arr in data) {" for (NSString __strong* str in arr) {" str = [str stringByReplacingOccurrencesOfString:@""" ! ! !withString:@""" ];" str = [str stringByReplacingOccurrencesOfString:@";" ! ! !withString:@";" ];" }" " csv = [arr componentsJoinedByString:@"";""];" csv = [NSString stringWithFormat:@""%@"n", csv];" " [myHandle seekToEndOfFile];" [myHandle writeData:[csv ! ! ! ! " dataUsingEncoding:NSUTF8StringEncoding]];" }" 34© FH AACHEN | Sebastian Meßingfeld
35.
Aufgaben Daten-Export aus Datenbank:
XML • keine Unterstützung in CocoaTouch vorhanden • Export als Property List • XML-Struktur mit einfachen Datentypen • Export von ObjC Objekten als verschachtelte Datenstruktur 35© FH AACHEN | Sebastian Meßingfeld
36.
Aufgaben Dateien-Import/Export vom Device
(Entwicklung) • Zugriff auf App-Dateisystem möglich • nicht so „verschlossen“ wie oft angenommen • im Simulator • Abbild der lauffähigen Anwendungen auf Entwicklungsrechner • Ordnerstruktur mit Dateien, wie bspw. *.sqlite • ~/Library/Application Support/iPhone Simulator ... • auf Endgeräten • Download / Upload eines App-Abbilds über „Organizer“-Tool • Drittanbieter-Tools: z.B. iExplorer (auch für Endnutzer) 36© FH AACHEN | Sebastian Meßingfeld
37.
Aufgaben Dateien-Import/Export vom Device
(Entwicklung) 37© FH AACHEN | Sebastian Meßingfeld
38.
Aufgaben Dateien-Import/Export vom Device
(Endnutzer) • iTunes File Sharing • über Flag in App-Konfiguration aktivierbar • Austausch von Dateien: iOS-App <> Desktop • über Documents-Ordnder der App • für Endnutzer in iTunes sichtbar 38© FH AACHEN | Sebastian Meßingfeld
39.
Aufgaben Performance • langsame I/O
Zugriffe auf Datenbank / Dateisystem • Lösung: Lazy Loading von Daten(sätzen) • Erzeugung von 10.000 Beispieldatensätzen ca. 3 Minuten 39© FH AACHEN | Sebastian Meßingfeld
40.
Aufgaben Tools • Xcode für
Datenbank Modellierung • Organizer / iTunes zum Datenaustausch • SQLite-Editor für Zugriff auf Datenbank • Navicat Premium • Core Data Editor 40© FH AACHEN | Sebastian Meßingfeld
41.
App 41© FH AACHEN
| Sebastian Meßingfeld
42.
FH Aachen Fachbereich Elektrotechnik
& Informationstechnik Sebastian Meßingfeld 42© FH AACHEN | Sebastian Meßingfeld