9 - PERSISTENCIA Y               COREDATACurso de desarrollo de aplicaciones móviles para iPhone y iPad                 en...
CONTENIDO• Introducción• User   Defaults• Core   Data
CONTENIDO   • Introducción• User   Defaults• Core   Data
INTRODUCCIÓN• En la aplicaciones complejas se hace crítico la persistencia de la infromación• Existen   diversas formas de...
INTRODUCCIÓN 2• Existentécnicas cada vez más refinadas para la persistencia de la información  • Ficheros          XML, Lis...
INTRODUCCIÓN 3• iOS   provee de varias maneras de gestionar la persistencia   • En   Ficheros dentro del sistema de fichero...
INTRODUCCIÓN 4• Parael almacenaje de ficheros iOS proporciona un directorio exclusivo para cada aplicación que es almacenad...
INTRODUCCIÓN 5• Laescritura de ficheros dentro del sistema es igual a la de cualquier sistema UNIX  • Objective-C  Nos prop...
INTRODUCCIÓN 6• Un   ejemplo de la lectura de un fichero podría ser// Obtenemos el listados de directoriosNSArray *paths = ...
CONTENIDO• Introducción   • User   Defaults• Core   Data
USER DEFAULTS• Userdefaults es una clase que nos permite almacenar datos con clave-valor• Esun sistema de almacenamiento s...
USER DEFAULTS 2• Asocia   valores a claves   • Las   claves han de ser Strings     • Losvalores pueden ser tipos sencillos...
USER DEFAULTS 3• Su   utilización es sencilla• Similar   a como funciona un diccionario pero siendo de la clase NSUserDefa...
USER DEFAULTS 4• Un   ejemplo de almacenaje de información// Obtenemos el UserDefaultsNSUserDefaults *defaults = [NSUserDe...
USER DEFAULTS 5• Para   recuperar la información// Obtenemos el UserDefaultsNSUserDefaults *defaults = [NSUserDefaults sta...
CONTENIDO• Introducción• User   Defaults   • Core    Data
CORE DATA• CoreData es un framework de Cocoa y Cocoa Touch que proporciona un ORM para Objective-C y SQLite   • Un ORM es ...
CORE DATA 2• Cada   clase es representado por una tabla en la base de datos• Cada   objeto por una fila en la BBDD• Cada   ...
CORE DATA 3• CoreData   es el encargado de volcar los cambios en la BBDD• Tambiénes responsable de borrar y crear nuevos o...
CORE DATA 4• Cuandocreamos un projecto debemos indicarle que emplearemos CoreData
CORE DATA 5• Esto cambiará en cierto modo el AppDelegate con los trozos  de código para gestionar todos los eventos de Cor...
CORE DATA 5• Estosnuevos métodos, en principio, no tendremos que tocarlos• También   nos habrá creado un fichero .xcdatamod...
CORE DATA 6• Podemos   editar el fichero . xcdatamodeld de manera visual
FIN
Upcoming SlideShare
Loading in …5
×

Ios.s9

653 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
653
On SlideShare
0
From Embeds
0
Number of Embeds
97
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Ios.s9

    1. 1. 9 - PERSISTENCIA Y COREDATACurso de desarrollo de aplicaciones móviles para iPhone y iPad endika.gutierrez@urbegi.com alex.rayon@urbegi.com Urbegi Learning Contents
    2. 2. CONTENIDO• Introducción• User Defaults• Core Data
    3. 3. CONTENIDO • Introducción• User Defaults• Core Data
    4. 4. INTRODUCCIÓN• En la aplicaciones complejas se hace crítico la persistencia de la infromación• Existen diversas formas de afrontar esta cuestión • La más sencilla es el almacenaje simple en el sistema de ficheros
    5. 5. INTRODUCCIÓN 2• Existentécnicas cada vez más refinadas para la persistencia de la información • Ficheros XML, Listas clave-valor, Bases de Datos SQL, NoSQL, ORM...
    6. 6. INTRODUCCIÓN 3• iOS provee de varias maneras de gestionar la persistencia • En Ficheros dentro del sistema de ficheros • En Listas clave-valor • En Ficheros XML • En Bases de Datos SQLite
    7. 7. INTRODUCCIÓN 4• Parael almacenaje de ficheros iOS proporciona un directorio exclusivo para cada aplicación que es almacenado dentro del bundle de la app• Dentro de ese directorio podremos escribir cuanto queramos • Fuera del directorio la escriturá esta prohibida• El directorio se borrará al borrar la aplicación
    8. 8. INTRODUCCIÓN 5• Laescritura de ficheros dentro del sistema es igual a la de cualquier sistema UNIX • Objective-C Nos proporciona diversas herramientas para integrar la escritura dentro de su API
    9. 9. INTRODUCCIÓN 6• Un ejemplo de la lectura de un fichero podría ser// Obtenemos el listados de directoriosNSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);// El primero será el empleadoNSString *documentsDirectory = [paths objectAtIndex:0];// Construimos la rutaNSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory];// Leemos el ficheroNSString *content = [[NSString alloc] initWithContentsOfFile:fileName usedEncoding:NSUTF8StringEncoding error:nil];
    10. 10. CONTENIDO• Introducción • User Defaults• Core Data
    11. 11. USER DEFAULTS• Userdefaults es una clase que nos permite almacenar datos con clave-valor• Esun sistema de almacenamiento sencillo pensando originalmente para almacenar la preferencias de usuario• Los datos se vuelcan a un XML de tipo Property List• Deja de ser eficiente para grandes cantidades de datos
    12. 12. USER DEFAULTS 2• Asocia valores a claves • Las claves han de ser Strings • Losvalores pueden ser tipos sencillos: NSNumber, NSString, NSDate •Ó tipos complejos complejos como NSArray ó NSDictionary • Siempreque se cumpla que los elementos de estos sean de estos mismos tipos
    13. 13. USER DEFAULTS 3• Su utilización es sencilla• Similar a como funciona un diccionario pero siendo de la clase NSUserDefaults• Existe uno por defecto y podemos crear tantos como queramos para cada usuario
    14. 14. USER DEFAULTS 4• Un ejemplo de almacenaje de información// Obtenemos el UserDefaultsNSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];// Almacenamos un objeto genérico[defaults setValue:resp forKey:@"Objeto"];// Almacenamos un booleano[defaults setBool:NO forKey:@"False"];// Almacenamos un número[defaults setFloat:7.0f forKey:@"Altura"];// Salvamos los cambios[defaults synchronize];
    15. 15. USER DEFAULTS 5• Para recuperar la información// Obtenemos el UserDefaultsNSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];// obtenemos un objeto genéricoid obj = [defaults objectForKey:@"Objeto"];// Almacenamos un booleanoBOOL b = [defaults boolForKey:@"False"];// Almacenamos un númerofloat f = [defaults floatForKey:@"Altura"];
    16. 16. CONTENIDO• Introducción• User Defaults • Core Data
    17. 17. CORE DATA• CoreData es un framework de Cocoa y Cocoa Touch que proporciona un ORM para Objective-C y SQLite • Un ORM es un mapeador de objetos del lenguaje a tuplas en la base de datos • Gestiona todas las relacciones con la BBDD
    18. 18. CORE DATA 2• Cada clase es representado por una tabla en la base de datos• Cada objeto por una fila en la BBDD• Cada atributo por un campo en una fila
    19. 19. CORE DATA 3• CoreData es el encargado de volcar los cambios en la BBDD• Tambiénes responsable de borrar y crear nuevos objetos en la BBDD según se vayan necesitando• Por lo tanto abstrae el programador de todo acceso a la BBDD
    20. 20. CORE DATA 4• Cuandocreamos un projecto debemos indicarle que emplearemos CoreData
    21. 21. CORE DATA 5• Esto cambiará en cierto modo el AppDelegate con los trozos de código para gestionar todos los eventos de CoreData@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;- (void)saveContext;- (NSURL *)applicationDocumentsDirectory;@end
    22. 22. CORE DATA 5• Estosnuevos métodos, en principio, no tendremos que tocarlos• También nos habrá creado un fichero .xcdatamodeld • Eneste fichero diseñaremos el modelo de datos de la base de datos
    23. 23. CORE DATA 6• Podemos editar el fichero . xcdatamodeld de manera visual
    24. 24. FIN

    ×