Restkit Mapping Nested Array con Forsquare

Estoy intentando estudiar sobre el uso de restKit para get algunos datos de foursquare.

Estoy usando este tutorial .

Usando este codigo

Trato de hacer algo diferente, así que trato de get los datos de la categoría.

Aquí se ve el json de foursqure

{ venue: { id: "40a55d80f964a52020f31ee3", name: "Clinton St. Baking Co. & Restaurant", contact: { phone: "6466026263", formattedPhone: "(646) 602-6263" }, location: { address: "4 Clinton St", crossStreet: "at E Houston St.", lat: 40.721294, lng: -73.983994, postalCode: "10002", city: "New York", state: "NY", country: "United States", cc: "US" }, canonicalUrl: "https://foursquare.com/v/clinton-st-baking-co--restaurant/40a55d80f964a52020f31ee3", categories: [ { id: "4bf58dd8d48988d143941735", name: "Breakfast Spot", pluralName: "Breakfast Spots", shortName: "Breakfast / Brunch", icon: { prefix: "https://foursquare.com/img/categories_v2/food/breakfast_", suffix: ".png" }, primary: true }, { id: "4bf58dd8d48988d16a941735", name: "Bakery", pluralName: "Bakeries", shortName: "Bakery", icon: { prefix: "https://foursquare.com/img/categories_v2/food/bakery_", suffix: ".png" } }, { id: "4bf58dd8d48988d16d941735", name: "Café", pluralName: "Cafés", shortName: "Café", icon: { prefix: "https://foursquare.com/img/categories_v2/food/cafe_", suffix: ".png" } } ], } } 

y aquí hay una parte del tutorial que obtiene statistics

 @interface Venue : NSObject @property (strong, nonatomic) NSString *name; @property (strong, nonatomic) Stats *stats; @interface Stats : NSObject @property (nonatomic, strong) NSNumber *checkinsCount; @property (nonatomic, strong) NSNumber *tipCount; @property (nonatomic, strong) NSNumber *usersCount; 

parte de mapeo

 RKObjectMapping *statsMapping = [RKObjectMapping mappingForClass:[Stats class]]; [statsMapping addAttributeMappingsFromArray:@[@"checkinsCount", @"tipCount", @"usersCount"]]; RKRelationshipMapping *statsRelation = [RKRelationshipMapping relationshipMappingFromKeyPath:@"stats" toKeyPath:@"stats" withMapping:statsMapping]; [venueMapping addPropertyMapping:statsRelation]; 

después del mapeo

Puedo get fácilmente los datos de la siguiente manera

 NSLog(@"%i",venue.stats.checkinsCount); 

e imprimirá el número checkinsCount

ahora trato de get los datos de la categoría. Arreglo el código para get los nuevos datos.

agregar algo como esto

 @interface Venue : NSObject @property (strong, nonatomic) NSString *name; @property (strong, nonatomic) Categories *categories; @interface Categories : NSObject @property (nonatomic, strong) NSString *name; @property (nonatomic ,strong) NSString *pluralName; 

agregar mapeo como este

 RKObjectMapping *categoriesMapping = [RKObjectMapping mappingForClass:[Categories class]]; [categoriesMapping addAttributeMappingsFromDictionary:@{@"name":@"name",@"pluralName":@"pluralName"}]; RKRelationshipMapping *cate = [RKRelationshipMapping relationshipMappingFromKeyPath:@"categories" toKeyPath:@"categories" withMapping:categoriesMapping]; [venueMapping addPropertyMapping:cate]; 

ahora trato de get el nombre de la categoría

 NSLog(@"%@",venue.categories.pluralName); 

pero siempre se anula

Creo que tal vez problema que está en el tipo de datos?

Hay tres nombres y no sé cómo imprimirlos todos.

Lo siento, mi lengua materna no es el inglés, así que no puedo explicar la situación muy bien.

En JSON, las categorías son una matriz, por lo que la propiedad en la que intentas ubicarla debe ser:

 @property (strong, nonatomic) NSArray *categories; 

Luego, el código de logging debe cambiar para repetir las categorías:

 for (Categories *category in venue.categories) { NSLog(@"%@", category.pluralName); } 

Las categorías de class tienen un nombre engañoso, ya que en realidad no es un object de colección (como parece haber pensado originalmente).