SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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 y la persistencia
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
  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
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
• Propiedades
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”];
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;
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
Employee
 Employee         Department
                   Department
  Employee




 NSManagedObjectContext




NSPersistentStoreCoordinator    NSManagedObjectModel




   Persistent Object Store              File
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
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;
}
Performance Tunning

• Normalización versus desnormalización
• Cuando guardar

- (BOOL)hasChanges;

- (BOOL)save:(NSError **)error;
Persistent Store Types
                 SQLite
                 Binary
                  XML
              In-Memory
API para crear Atomic Stores personalizados
Otros Temas

• Versionado y migración
• Deshacer y Rehacer
• Integración con Spotlight y Quick Look
• Sync Services
• Multithreading
• Aplicaciones distribuidas
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Y Digimos Que Todo Esba Bien
Y Digimos Que Todo Esba BienY Digimos Que Todo Esba Bien
Y Digimos Que Todo Esba BienDIRECTIVO DOCENTE
 
10 la matemática-de-dios
10 la matemática-de-dios10 la matemática-de-dios
10 la matemática-de-diosjauregui88
 
Que es un Rey para ti =)?
Que es un Rey para ti =)?Que es un Rey para ti =)?
Que es un Rey para ti =)?100joaquina100
 
00. Edicion Html. Introduccion 0001
00. Edicion Html. Introduccion   000100. Edicion Html. Introduccion   0001
00. Edicion Html. Introduccion 0001José M. Padilla
 
DiseñO GráFico
DiseñO GráFicoDiseñO GráFico
DiseñO GráFicocecimat
 
Presentación Preliminar - Exámen
Presentación Preliminar - ExámenPresentación Preliminar - Exámen
Presentación Preliminar - ExámenNando Landeta
 
2da Unidad Jaume Trilla
2da Unidad Jaume Trilla2da Unidad Jaume Trilla
2da Unidad Jaume TrillaRosmeri
 
Trabajo De Constitucion Politica
Trabajo De Constitucion PoliticaTrabajo De Constitucion Politica
Trabajo De Constitucion Politicaguest4d63a3
 
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)Fernando Leandro
 
Tarabajo formal de las redes sociales
Tarabajo formal de las redes socialesTarabajo formal de las redes sociales
Tarabajo formal de las redes socialesvjgaby
 
cadena solidaria
cadena solidariacadena solidaria
cadena solidariaanabella92
 
Ojos En La Oscuridad
Ojos En La OscuridadOjos En La Oscuridad
Ojos En La OscuridadJuanma M
 
AnáLisis De La Normativa
AnáLisis De La NormativaAnáLisis De La Normativa
AnáLisis De La NormativaSITRAED
 
Historia Ifeba
Historia IfebaHistoria Ifeba
Historia IfebaIFEBA
 

Andere mochten auch (20)

GRUPOE_APLICINFO_12
GRUPOE_APLICINFO_12GRUPOE_APLICINFO_12
GRUPOE_APLICINFO_12
 
Y Digimos Que Todo Esba Bien
Y Digimos Que Todo Esba BienY Digimos Que Todo Esba Bien
Y Digimos Que Todo Esba Bien
 
10 la matemática-de-dios
10 la matemática-de-dios10 la matemática-de-dios
10 la matemática-de-dios
 
Peluqueria Elva
Peluqueria ElvaPeluqueria Elva
Peluqueria Elva
 
Que es un Rey para ti =)?
Que es un Rey para ti =)?Que es un Rey para ti =)?
Que es un Rey para ti =)?
 
00. Edicion Html. Introduccion 0001
00. Edicion Html. Introduccion   000100. Edicion Html. Introduccion   0001
00. Edicion Html. Introduccion 0001
 
DiseñO GráFico
DiseñO GráFicoDiseñO GráFico
DiseñO GráFico
 
AC/DC Homenaje
AC/DC HomenajeAC/DC Homenaje
AC/DC Homenaje
 
Presentación Preliminar - Exámen
Presentación Preliminar - ExámenPresentación Preliminar - Exámen
Presentación Preliminar - Exámen
 
2da Unidad Jaume Trilla
2da Unidad Jaume Trilla2da Unidad Jaume Trilla
2da Unidad Jaume Trilla
 
Trabajo De Constitucion Politica
Trabajo De Constitucion PoliticaTrabajo De Constitucion Politica
Trabajo De Constitucion Politica
 
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
 
Control De Dios
Control De DiosControl De Dios
Control De Dios
 
Teorias
TeoriasTeorias
Teorias
 
Organización Y Liderazgo
Organización Y LiderazgoOrganización Y Liderazgo
Organización Y Liderazgo
 
Tarabajo formal de las redes sociales
Tarabajo formal de las redes socialesTarabajo formal de las redes sociales
Tarabajo formal de las redes sociales
 
cadena solidaria
cadena solidariacadena solidaria
cadena solidaria
 
Ojos En La Oscuridad
Ojos En La OscuridadOjos En La Oscuridad
Ojos En La Oscuridad
 
AnáLisis De La Normativa
AnáLisis De La NormativaAnáLisis De La Normativa
AnáLisis De La Normativa
 
Historia Ifeba
Historia IfebaHistoria Ifeba
Historia Ifeba
 

Ähnlich wie Core Data en Mac OS X

Nativescript
NativescriptNativescript
NativescriptAutentia
 
Aplicaciones en HTML 5: Los pilares de una Nueva Web
Aplicaciones en HTML 5: Los pilares de una Nueva WebAplicaciones en HTML 5: Los pilares de una Nueva Web
Aplicaciones en HTML 5: Los pilares de una Nueva WebGonzalo C.
 
Sp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycleSp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycleMario Cortés Flores
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker Canarias
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de arieslmrv
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
 
Programación móvil para superhéroes
Programación móvil para superhéroesProgramación móvil para superhéroes
Programación móvil para superhéroesSoftware Guru
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Luis Fernando Aguas Bucheli
 
Migración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL DeveloperMigración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL DeveloperValentin Leonard Tabacaru
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBVictor Cuervo
 

Ähnlich wie Core Data en Mac OS X (20)

S4-PD1.pptx
S4-PD1.pptxS4-PD1.pptx
S4-PD1.pptx
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
Sesion uno azuay
Sesion uno azuaySesion uno azuay
Sesion uno azuay
 
Nativescript
NativescriptNativescript
Nativescript
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 
S8-DAW-2022S1.pptx
S8-DAW-2022S1.pptxS8-DAW-2022S1.pptx
S8-DAW-2022S1.pptx
 
Aplicaciones en HTML 5: Los pilares de una Nueva Web
Aplicaciones en HTML 5: Los pilares de una Nueva WebAplicaciones en HTML 5: Los pilares de una Nueva Web
Aplicaciones en HTML 5: Los pilares de una Nueva Web
 
Sp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycleSp fx connecting to share point & react lifecycle
Sp fx connecting to share point & react lifecycle
 
Angular Fundamentals
Angular FundamentalsAngular Fundamentals
Angular Fundamentals
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de aries
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Programación móvil para superhéroes
Programación móvil para superhéroesProgramación móvil para superhéroes
Programación móvil para superhéroes
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Migración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL DeveloperMigración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL Developer
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
Jdbc
JdbcJdbc
Jdbc
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 

Kürzlich hochgeladen

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Kürzlich hochgeladen (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Core Data en Mac OS X

  • 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.
  • 8.
  • 9. Cocoa Bindings • Core Data trabaja perfectamente con Cocoa Bindings • Key Value Coding • Key Value Observing • Propiedades
  • 10. 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”];
  • 11. 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;
  • 12. 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
  • 13. Employee Employee Department Department Employee NSManagedObjectContext NSPersistentStoreCoordinator NSManagedObjectModel Persistent Object Store File
  • 14.
  • 15. 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
  • 16. 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; }
  • 17. Performance Tunning • Normalización versus desnormalización • Cuando guardar - (BOOL)hasChanges; - (BOOL)save:(NSError **)error;
  • 18. Persistent Store Types SQLite Binary XML In-Memory API para crear Atomic Stores personalizados
  • 19. Otros Temas • Versionado y migración • Deshacer y Rehacer • Integración con Spotlight y Quick Look • Sync Services • Multithreading • Aplicaciones distribuidas
  • 20. 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
  • 21. Other Books Core Data Apple’s API for Persisting Data under Mac OS X Author: Marcus S. Zarra http://www.pragprog.com