2011-05-20 19 views
6

Estoy usando RestKit en mi aplicación de iPhone para cargar una lista de países. El problema es que el método elementToPropertyMappings usa un diccionario para mapear cada objeto. En mi caso, tengo una serie de cadenas que me gustaría asignar a la propiedad del nombre en mi clase Country.RestKit - Cargar una matriz simple

¿Alguien sabe cómo hacer esto?

elementToPropertyMappings

debe devolver un diccionario que contiene asignación de nombres de elementos JSON a propiedad descriptores de acceso

  • (*) NSDictionary elementToPropertyMappings declarados en RKObjectMappable.h

Mi JSON Data

["Argentina","Australia","Austria","Belgium","Bolivia","Brazil","Bulgaria","Canada","Cayman Islands","China","Costa Rica","Croatia","Czech Republic","Denmark","Ecuador","Ethiopia","F.Y.R.O. Macedonia","Finland","France","French Polynesia","Germany","Guam","Hong Kong SAR","Indonesia","Ireland","Israel","Italy","Japan","Latvia","Lithuania","Luxembourg","Malaysia","Malta","Mexico","Morocco","Netherlands","New Zealand","Nicaragua","Norway","Papua New Guinea","Peru","Poland","Portugal","Puerto Rico","Qatar","Romania","Russia","Singapore","Slovakia","Slovenia","South Africa","South Korea","Spain","Sweden","Switzerland","Taiwan","United Arab Emirates","United Kingdom","United States","Venezuela","Vietnam"] 

ACTUALIZACIÓN:

me di cuenta de cómo utilizar el RKClient para hacer un pedido, por lo se salta la funcionalidad Mapping. Ahora necesito averiguar qué clase usar para el análisis JSON. El analizador yajl-objc se ve muy bien, pero no quiero incluir otro analizador si se puede hacer con una lib de RestKit.

-(void)loadLocations 
{ 
    NSLog(@"loadLocations"); 
    RKObjectManager *objectManager = [RKObjectManager sharedManager];  
    [[RKClient sharedClient] get:@"/locations/countries.json" delegate:self]; 

} 

- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response { 
    NSLog(@"Loaded payload: %@", [response bodyAsString]); 
// HOW CAN I PARSE THIS STRING INTO AN NSArray? 
} 

Respuesta

8

Encontrar la importación adecuada para RKJSONParser fue lo más desafiante para mí.

Si hay otra forma de lograr esto con las clases de Mapeo, por favor hágamelo saber.

Aquí está el código relacionado con la carga de una matriz simple. se añadió

#import <RestKit/Support/RKJSONParser.h> 
@implementation CountriesViewController 
@synthesize countries; 

-(void)loadLocations 
{ 
    NSLog(@"loadLocations");  
    [[RKClient sharedClient] get:@"/locations/countries.json" delegate:self]; 
} 

- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response { 
    NSLog(@"Loaded payload: %@", [response bodyAsString]); 
    RKJSONParser* parser = [RKJSONParser new]; 
    countries = [parser objectFromString:[response bodyAsString]]; 
} 
+3

Para v0.9.3 la importación debería ser 'import ' si están usando JSONKit alternativamente también puede usar '[response parsedBody]' –

+2

y para la versión actual (0.10) debe usar '#import ' con el objeto 'RKJSONParserJSONKit' en lugar del' RKJsonParser' –

0

Soporte para matriz de cadenas en v0.10: Source

Cuestiones relacionadas