Usando Core Data
el poder de la simplicidad
         Vicente Vicens
        Imathink World
Core Data es un
framework de Cocoa que
       provee de una
  infraestructura para la
gestión de la colección de
 objetos ...
Core Data no es una base
 de datos relacional o un
         RDBMS
• Deshacer y Rehacer
• Validación automática de valores de propiedades
• Propagación de cambios y consistencia de
  relaci...
Mac OS X
Sí   Tiger

Sí   Leopard

Sí   Snow Leopard
iPhone OS

 No    2.x


 NDA   3.x
Cocoa Bindings
• Core Data trabaja perfectamente
  con Cocoa Bindings

 • Key Value Coding
 • Key Value Observing
• Propie...
Key Value Coding
• Nos permite acceder a los atributos
  de un objeto sin tener que llamar
  directamente a sus “accessors...
Key Value Observing
• Nos permite obtener notificaciones
   cuando un atributo ha cambiado
static NSString *observer = @"Ob...
Propiedades
• Con Leopard y iPhone OS
• Son KVC compatibles
@interface MyObject: NSObject
{
    NSString *myString;
}
@pro...
Employee
 Employee         Department
                   Department
  Employee




 NSManagedObjectContext




NSPersisten...
Subclassing NSManagedObject
 • Crear “accessors” para atributos y
    relaciones

 • Las relaciones To-Many devuelven NSSe...
NSFetchRequest
• Se pueden crear en el modelo o en código
• NSPredicate y NSSortDescriptor
NSManagedObjectContext *myMoc =...
Performance Tunning

• Normalización versus desnormalización
• Cuando guardar

- (BOOL)hasChanges;

- (BOOL)save:(NSError ...
Persistent Store Types
                 SQLite
                 Binary
                  XML
              In-Memory
API p...
Otros Temas

• Versionado y migración
• Deshacer y Rehacer
• Integración con Spotlight y Quick Look
• Sync Services
• Mult...
Apple Documentation

• Core Data Programming Guide
• Atomic Store Programming Topics
• Creating a Managed Object Model wit...
Other Books

Core Data
Apple’s API for Persisting Data under Mac OS X




Author: Marcus S. Zarra

http://www.pragprog.com
Nos
vemos
en
WWDC09
Core Data en Mac OS X
Core Data en Mac OS X
Core Data en Mac OS X
Próxima SlideShare
Cargando en…5
×

Core Data en Mac OS X

2.703 visualizaciones

Publicado el

Uso de Core Data en aplicaciones Mac OS X.

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.703
En SlideShare
0
De insertados
0
Número de insertados
358
Acciones
Compartido
0
Descargas
41
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Core Data en Mac OS X

  1. 1. Usando Core Data el poder de la simplicidad Vicente Vicens Imathink World
  2. 2. Core Data es un framework de Cocoa que provee de una infraestructura para la gestión de la colección de objetos y la persistencia
  3. 3. Core Data no es una base de datos relacional o un RDBMS
  4. 4. • Deshacer y Rehacer • Validación automática de valores de propiedades • Propagación de cambios y consistencia de relaciones entre objetos • Agrupado, filtrado y organización de los datos en memoria y en la UI • Soporte automático para guardar los objetos en repositorios de datos externos • Integración opcional con Cocoa Bindings para dar soporte a la sincronización automática con la UI
  5. 5. Mac OS X Sí Tiger Sí Leopard Sí Snow Leopard
  6. 6. iPhone OS No 2.x NDA 3.x
  7. 7. Cocoa Bindings • Core Data trabaja perfectamente con Cocoa Bindings • Key Value Coding • Key Value Observing • Propiedades
  8. 8. Key Value Coding • Nos permite acceder a los atributos de un objeto sin tener que llamar directamente a sus “accessors” Recipe *myRecipe = [[Recipe alloc] init]; NSString *recipeName = [myRecipe valueForKey:@”name”]; [myRecipe setValue:@”Tortilla de patatas” forKey:@”name”];
  9. 9. Key Value Observing • Nos permite obtener notificaciones cuando un atributo ha cambiado static NSString *observer = @"Observer" id myRecipe = ... [myRecipe addObserver:self forKeyPath:@"name" options:(NSKeyValueObservingOptionNew| NSKeyValueObservingOptionOld) context:observer]; - (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context;
  10. 10. Propiedades • Con Leopard y iPhone OS • Son KVC compatibles @interface MyObject: NSObject { NSString *myString; } @property (retain) NSString *myString; @end #import “MyObject.h” @implementation MyObject @synthesize myString; @end
  11. 11. Employee Employee Department Department Employee NSManagedObjectContext NSPersistentStoreCoordinator NSManagedObjectModel Persistent Object Store File
  12. 12. Subclassing NSManagedObject • Crear “accessors” para atributos y relaciones • Las relaciones To-Many devuelven NSSet • Métodos personalizados @interface Recipe : NSManagedObject { // No se definen los iVars. } @property (assign) NSString *title; @end #import “Recipe.h” @implementation Recipe @dynamic title; @end
  13. 13. NSFetchRequest • Se pueden crear en el modelo o en código • NSPredicate y NSSortDescriptor NSManagedObjectContext *myMoc = [self managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:[NSEntityDescription entityWithName:@"Department" inManagedObjectContext:myMoc]]; NSError *error = nil; NSArray *results = [myMoc executeFetchRequest:request error:&error]; if (error) { [NSApp presentError:error]; return; }
  14. 14. Performance Tunning • Normalización versus desnormalización • Cuando guardar - (BOOL)hasChanges; - (BOOL)save:(NSError **)error;
  15. 15. Persistent Store Types SQLite Binary XML In-Memory API para crear Atomic Stores personalizados
  16. 16. Otros Temas • Versionado y migración • Deshacer y Rehacer • Integración con Spotlight y Quick Look • Sync Services • Multithreading • Aplicaciones distribuidas
  17. 17. Apple Documentation • Core Data Programming Guide • Atomic Store Programming Topics • Creating a Managed Object Model with Xcode • XCode Tools for Core Data • Core Data Framework Reference • Tutorials
  18. 18. Other Books Core Data Apple’s API for Persisting Data under Mac OS X Author: Marcus S. Zarra http://www.pragprog.com
  19. 19. Nos vemos en WWDC09

×