Created
December 22, 2011 22:18
-
-
Save daniel-rueda/1512096 to your computer and use it in GitHub Desktop.
Cambios en DataModel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Agrega metodo para mapear lo que recibes de la API con atributos de una clase | |
- (RKManagedObjectMapping *)objectMappingForPublishedID | |
{ | |
RKManagedObjectMapping *objectMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Publication"]; | |
[objectMapping mapKeyPath:@"account" | |
toAttribute:@"account"]; | |
[objectMapping mapKeyPath:@"status_id" | |
toAttribute:@"statusID"]; | |
return objectMapping; | |
} | |
/** | |
Aqui debes agregar una nueva relacion, que es como mapeas lo que recibes en la key 'published_id' | |
En el modelo de la base de datos (retiOS.xcdatamodeld) debes crear un nuevo 'Entity' que será la clase | |
que contendra la info que aparece en la key 'published_id' (Checa como está Entity Location en Report) | |
Luego debes agregar en "Report", en la seccion "Relationships", una nueva relacion, la key que pongas ahi será | |
la misma que vas a usar abajo (aqui aparece published_id) | |
Haces lo mismo, pero ahora te vas a la entidad que creaste y creas la relacion inversa | |
Para crear el archivo .h/.m de la nueva entidad debes: | |
(Esto lo haces después de crear las entidades y establecer las relaciones) | |
- Abrir retiOS.xcdatamodeld | |
- Seleccionar la entidad a la que le quieres crear los archivos | |
- Seleccionas File -> New -> New File -> Core Data -> NSManagedObject subclass | |
- Verifica que sea la entidad que seleccionaste | |
**/ | |
- (RKManagedObjectMapping *)objectMappingForReport | |
{ | |
RKManagedObjectMapping *reportMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Report"]; | |
NSDateFormatter* dateFormatter = [[NSDateFormatter new] autorelease]; | |
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; | |
dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; | |
dateFormatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale currentLocale] localeIdentifier]] autorelease]; | |
reportMapping.dateFormatters = [NSArray arrayWithObject: dateFormatter]; | |
reportMapping.primaryKeyAttribute = @"identifier"; | |
[reportMapping mapKeyPath:@"id" | |
toAttribute:@"identifier"]; | |
[reportMapping mapKeyPath:@"markerimg" | |
toAttribute:@"marker"]; | |
[reportMapping mapAttributes:@"author", @"clean_text", @"comments", @"photo_url", @"text", @"thumb_url", @"type", @"created_at", nil]; | |
// Relationship | |
[reportMapping mapKeyPath:@"location" | |
toRelationship:@"location" | |
withMapping:[self objectMappingForLocation]]; | |
// Debes agregar nueva relacion para "published_id" | |
// La informacion que se encuentra en la key published_id sera mapeada a una clase | |
[reportMapping mapKeyPath:@"published_id" // Es el nombre de la key que devuelve la api | |
toRelationship:@"published_id" // Es el nombre que tienes en el modelado (pueden ser diferentes) | |
withMapping:[self objectMappingForPublishedID]]; | |
return reportMapping; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment