Outils pour utilisateurs

Outils du site


restkit:mapper_des_donnees_imbriquees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
restkit:mapper_des_donnees_imbriquees [2012/12/03 12:02]
djiko créée
restkit:mapper_des_donnees_imbriquees [2016/10/17 13:56] (Version actuelle)
Ligne 14: Ligne 14:
 </​code>​ </​code>​
  
-On souhaite parser ce contenu et en intégrer les données dans des entités Coredata pour gérer un cache local. La récupération des données imbriquées n'est pas aussi simple qu'​elle en a l'air avec Restkit. Du moins n'​ai-je pas trouvé de moyen simple... En effet, dans l'​objet //​EntiteFille//,​ il n'​existe pas de moyen d'​identifier chacun des attributs. //​EntiteFille//​ est une collection d'​objets rattachés à //​EntiteMaitre//​.+On souhaite parser ce contenu et en intégrer les données dans des entités Coredata pour gérer un cache local. La récupération des données imbriquées n'est pas aussi simple qu'​elle en a l'air avec Restkit. Du moins n'​ai-je pas trouvé de moyen simple... En effet, dans l'​objet //​EntiteFille//,​ il n'​existe pas de moyen d'​identifier chacun des attributs. //​EntiteFille//​ est une collection d'​objets ​non identifiés ​rattachés à //​EntiteMaitre//​.
  
 ===== Proposition de solution ===== ===== Proposition de solution =====
  
 ==== Dans Coredata ==== ==== Dans Coredata ====
-On crée une entité //​EntiteMaitre à laquelle on associe un attribut //​EntiteFille//​+On crée une entité //​EntiteMaitre// à laquelle on associe un attribut //​EntiteFille// ​de type [[https://​developer.apple.com/​library/​mac/#​documentation/​Cocoa/​Conceptual/​CoreData/​Articles/​cdNSAttributes.html|transformable]]. Une fois générée sous la forme de NSManagedObject,​ la classe présente la forme suivante : 
 +<code objc> 
 +@interface EntiteMaitre : NSManagedObject
  
-==== Dans notre classe ​====+@property (nonatomic, retain) id EntiteFille;​ 
 + 
 +@end 
 + 
 +</​code>​ 
 + 
 +==== Mapping avec Restkit ​==== 
 +EntiteFille étant un attribut, le mapping est alors simple : 
 +<code objc> 
 +    RKManagedObjectMapping *entiteMapping = [RKManagedObjectMapping mappingForClass:​[EntiteMaitre class] 
 +                                                              inManagedObjectStore:​[[[RKObjectManager sharedObjectManager] objectManager] objectStore]];​ 
 +           
 +    [hotelMapping mapKeyPathsToAttributes:​ 
 +     ​@"​AttrEntiteFille",​ @"​EntiteFille",​ // Mapping des AttrEntiteFille 
 +     ​nil];​ 
 + 
 +</​code> ​
  
restkit/mapper_des_donnees_imbriquees.1354532533.txt.gz · Dernière modification: 2016/10/17 13:55 (modification externe)