Your SlideShare is downloading. ×
  • Like
Core Data en Mac OS X
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Core Data en Mac OS X

  • 2,410 views
Published

Uso de Core Data en aplicaciones Mac OS X.

Uso de Core Data en aplicaciones Mac OS X.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,410
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
40
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Usando Core Data el poder de la simplicidad Vicente Vicens Imathink World
  • 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. Core Data no es una base de datos relacional o un RDBMS
  • 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. Mac OS X Sí Tiger Sí Leopard Sí Snow Leopard
  • 6. iPhone OS No 2.x NDA 3.x
  • 7. Cocoa Bindings • Core Data trabaja perfectamente con Cocoa Bindings • Key Value Coding • Key Value Observing • Propiedades
  • 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. 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. 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. Employee Employee Department Department Employee NSManagedObjectContext NSPersistentStoreCoordinator NSManagedObjectModel Persistent Object Store File
  • 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. 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. Performance Tunning • Normalización versus desnormalización • Cuando guardar - (BOOL)hasChanges; - (BOOL)save:(NSError **)error;
  • 15. Persistent Store Types SQLite Binary XML In-Memory API para crear Atomic Stores personalizados
  • 16. Otros Temas • Versionado y migración • Deshacer y Rehacer • Integración con Spotlight y Quick Look • Sync Services • Multithreading • Aplicaciones distribuidas
  • 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. Other Books Core Data Apple’s API for Persisting Data under Mac OS X Author: Marcus S. Zarra http://www.pragprog.com
  • 19. Nos vemos en WWDC09