2011-05-26 4 views
3

J'apprends RestKit. Je suis tombé sur la fonctionnalité elementToPropertyMapping qu'il fournit. Je me demande si je peux utiliser cette cartographie pour les documents XML? ou est-ce juste pour JSON?elementToPropertyMapping dans RestKit

Dans le tutorial, j'ai trouvé qu'ils fournissent un flux JSON. Donc je suis confus. Y a-t-il un autre analyseur XML pour IOS qui fournit cette fonctionnalité de mappage. Merci

Répondre

5

Le didacticiel que vous avez trouvé est obsolète. elementToPropertyMappings n'est plus utilisé. Au lieu d'hériter de RKObject ou de RKManagedObject, vous utilisez les classes objectives-c normales et vous leur mappez des données avec un RKObjectMapping.

Vous trouverez la nouvelle documentation here.

Mais oui, vous pouvez utiliser le mappage d'objets de RestKit pour les documents XML. L'analyseur doit détecter le type mime et utiliser un analyseur xml au lieu de json; Si ce n'est pas le cas, vous pouvez explicitement lui dire d'utiliser xml selon la documentation liée.

+0

Désolé, il a déménagé. Mis à jour le lien. –

+0

Le lien pointe vers un document où le mappage d'objet JSON est décrit, pas le mappage XML :( –

+0

Les mappages sont définis de la même manière.RestKit traite du fait qu'il reçoit du code XML et non JSON en interne. –

0

Ceci est une très bonne xml parser comparison for iOS

En général, vous devriez être en mesure de faire ce genre de cartographie avec RestKit. Cela dépend de la complexité de votre fichier XML. S'il repose sur des espaces de noms et une technologie extraterrestre, RestKit peut être difficile.

Pour le format XML pur, Restkit fonctionne très bien. Certains tutorials/examples et enfin le RestKit API docs. Recherchez RKXMLParserLibXML.

2

En fait, le tutoriel de gitHub est obsolète, mais même le nouveau n'a pas de référence sur la façon de demander efficacement des fichiers XML avec RestKit pour faire un mapping correct et c'est très déroutant pour les nouveaux arrivants comme moi.

En tant que référence rapide, je vais essayer de vous montrer la façon dont il fonctionne avec XML:

Disons que vous avez une réponse comme ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<users type="array"> 
    <user> 
     <id>1</id> 
     <name>Roberto</name> 
     <company>Apple</company> 
    </user> 
    <user> 
     <id>2</id> 
     <name>Carlos</name> 
     <company>Adobe</company> 
    </user> 
</users> 

Si vous souhaitez mapper l'un des utilisateurs de classe Dans votre projet Objective-C, vous devrez accorder une attention particulière à keyPath, dans ce cas: "users" < - première balise, et "user" < -second tag, et la "classe" que vous souhaitez mapper.

Pour cela, vous utilisez:

[[RKObjectManager sharedManager].mappingProvider setMapping:objectMapping forKeyPath:@"users.user"]; 

Pour le reste, est ok si vous utilisez la première partie du tutoriel sur ce lien (mapping objet par exemple):

https://github.com/RestKit/RestKit/wiki/Object-mapping