Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSebastián Dorantes Modificado hace 10 años
1
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Datos en la aplicación Moncada, 9 de Julio de 2010
2
2 Datos en la aplicación - Sistema de archivos de una aplicación - Accediendo a directorios - Trabajando con rutas, 'paths' - Bundles y recursos de la aplicación - La clase NSBundle - Obteniendo y almacenando datos - Property lists - NSXMLParser - NSUserStandardDefaults
3
3 Sistema de archivos de una aplicación Cada aplicación tiene su propio conjunto de directorios MyApp.app MyApp MainWindow.nib SomeImage.png Documents Library Caches Preferences Aplicaciones sólo pueden escribir en su directorio Home
4
4 Trabajando con el sistema de directorios - NSPathUtilities.h → Conjunto de categorías para trabajar con rutas del sistema de archivos de una aplicación - Ejemplo (buscando el directorio Documents): NSString *documentDirectory; NSArray *paths = NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); documentsDirectory = [paths objectAtIndex:0];
5
5 Bundles y recursos de la aplicación - Es un directorio con una estructura jerárquica estandarizada que contiene código ejecutable y los recursos usados por ese código. - Ventajas: - Se trabaja igual que con ficheros - Su estructura permite añadir recursos de diferentes idiomas fácilmente. - Instalar/Desinstalar → Drag&Drop - Múltiples arquitecturas y sistemas de ficheros - Tipos: aplicación, plug-ins, frameworks, widgets...
6
6 Bundles y recursos de la aplicación Ejemplo de Application Bundle MyApp.app MyApp Info.plist Default.png MainWindow.nib Settings.bundle en.lproj MyImage.png fr.lproj MyImage.png
7
7 Accediendo al contenido del bundle Accediendo al bundle de la aplicación NSBundle *bundle = [NSBundle mainBundle]; Obteniendo la ruta de un recurso en el bundle NSBundle *bundle = [NSBundle mainBundle]; [bundle pathForResource:@”image” ofType:@”jpg”];
8
8 Preferencias, Property Lists y XML Preferencias de usuario –NSUserDefaults –Settings y preferencias en la aplicación Property Lists –Property Lists editor –Leer y escribir Property Lists Obteniendo datos XML - NSXMLParser y NSXMLParserDelegate
9
9 Property Lists Es una manera de representar jerarquías simples de datos Sólo soporta arrays, diccionarios, strings, fechas, enteros, dobles y booleanos Una property list es una clase (array o diccionario) que engloba uno o varios objetos soportados Representada con XML o con un binario (más compacto) Se usa para una cantidad menor de unos pocos cientos de KBs
10
10 Property Lists Métodos para escribir - (BOOL)writeToFile:(NSString *)aPath atomically:(BOOL)flag; - (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)flag; Métodos para leer - (id)initWithContentsOfFile:(NSString *)aPath; - (id)initWithContentsOfURL:(NSURL *)aURL;
11
11 Property Lists Ejemplo de lectura (en el caso de NSArray): NSString *path = [[NSBundle mainBundle] pathForResource:@"places" ofType:@"plist"]; NSArray *placesArray = [NSArray initWithContentsOfFile:path];
12
12 Preferencias de usuario Dos tipos: – Preferencias integradas en la aplicación – Preferencias en la aplicación Settings Mutuamente exclusivas (¡Elige sólo un tipo!) Patrón de uso – Opciones de configuración con poco uso → Settings – Opciones de configuración regulares → Integradas
13
13 Preferencias de usuario Clase NSUserDefaults – Método de clase → +(id)standardUserDefaults – Es una Property List Ejemplo de uso (insertar valor y recuperarlo) NSUserDefaults *defaults = [NSUserDefaults standardUserFDefaults]; [defaults setObject:@”Pedro” forKey: @”name”]; NSString *nombre = [defaults stringForKey:@”name”];
14
14 Settings Bundle - Settings.bundle en tu aplicación sirve para añadir las preferencias a la aplicación Settings de iPhone/iPod/iPad - Muestra una pantalla con controles - Cada control tiene (al menos): Tipo (Type) Titulo (Title) Clave (Key)
15
15 Demostración
16
16 NSXMLParser Clase para parsear XML Dirigido por eventos Inicialización: NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; [parser setDelegate:self]; [parser setShouldProcessNamespaces:NO]; [parser setShouldReportNamespacePrefixes:NO]; [parser setShouldResolveExternalEntities:NO]; [parser parse]; //empieza a parsear
17
17 NSXMLParserDelegate Métodos importantes - didStartElement → Ha encontrado un tag de inicio. Ej, - didEndElement → Ha encontrado un tag de final. Ej, - foundCharacters → Ha encontrado una cadena entre <> - parserDidStartDocument → Ha empezado a parsear - parserDidEndDocument → Ha acabado de parsear
18
18 NSXMLParser Patrón de diseño 1 Iniciar un objeto NSXMLParser y asignarle un delegado 2 didStartElement → Guardar el tag y reservar memoria estructura 3 didEndElement → Guardar valores en la estructura 4 foundCharacters → Guardar valor del tag
19
19 Demostración
20
20 Bibliografía “Bundle Programming Guide” “Property List Programming Guide” “User Defaults Programming Topics”
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.