Question

Salut communauté stackoverflow, J'utilise RKObjectManager pour faire des demandes iOS RESTful pour cartographier les réponses aux objets locaux.

Mon problème avec Restkit, est d'enregistrer plusieurs classes pour le même élément dans différentes demandes. Dans cette demande, j'ai des objets imbriqués avec le même nom de l'élément « Liste ».

Voici une partie du code:

// Get array of RKObjects1 - First request of the queue
RKObjectManager * objectManager = [RKObjectManager sharedManager];
[objectManager registerClass:[RKTObject1 class] forElementNamed:@"List"];

RKObjectLoader * loader = [objectManager objectLoaderWithResourcePath:@"objects1" delegate:self];
[loader setObjectClass:[RKTList class]];



// Get array of RKObjects2 - Second request of the queue
RKObjectManager * objectManager = [RKObjectManager sharedManager];
[objectManager registerClass:[RKObjects2 class] forElementNamed:@"List"];

RKObjectLoader * loader = [objectManager objectLoaderWithResourcePath:@"objects2" delegate:self];
[loader setObjectClass:[RKTList class]];

Ce que je voudrais savoir, s'il y a une solution pour enregistrer plusieurs classes pour le même élément dans différentes demandes?

Était-ce utile?

La solution

Eh bien, pour résoudre mon problème, restkit mise à jour i et avec la nouvelle cartographie des objets 2.0, il est possible d'enregistrer plusieurs classes pour les touches même élément.

Vous avez seulement besoin de créer différents objets RKObjectMapping pour chaque demande et faire setObjectMapping de chaque objet dans RKObjectLoader.

Par exemple:

RKObjectMappingProvider * mappingProvider = [RKObjectManager sharedManager].mappingProvider; 

// Create 2 RKObjectMapping for each request
RKObjectMapping * object1Mapping = [RKObjectMapping mappingForClass:[RKTList class]];
[object1Mapping mapKeyPath:@"Id" toAttribute:@"idObject"];
[object1Mapping mapKeyPath:@"Name" toAttribute:@"name"];
[mappingProvider setMapping:object1Mapping forKeyPath:@"Objects1List"];


RKObjectMapping * object2Mapping = [RKObjectMapping mappingForClass:[RKTList class]];
[object2Mapping mapKeyPath:@"Id" toAttribute:@"idObject"];
[object2Mapping mapKeyPath:@"Name" toAttribute:@"name"];
[mappingProvider setMapping:object2Mapping forKeyPath:@"Objects2List"];

//Make the 2 request with explicit object mapping
RKObjectManager * objectManager = [RKObjectManager sharedManager];
RKObjectLoader * loaderFirstRequest = [objectManager objectLoaderWithResourcePath:@"objects1" delegate:self];
[loaderFirstRequest setObjectMapping:object1Mapping];

RKObjectLoader * loaderSecondRequest = [objectManager objectLoaderWithResourcePath:@"objects2" delegate:self];
[loaderSecondRequest setObjectMapping:object2Mapping];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top