Учитывая следующую структуру JSON:Mapping элементы верхнего уровня и вложенные массивы с RestKit
{
"foo": {
"anno": "blah",
"domini": null,
"locations": [
{
"data": {
"lat": null,
"lon": null
},
"data": {
"lat": null,
"lon": null
}
}
]
}
}
Как настроить RestKit отображения для этого сценария? Я, хотя у меня это было, но я не могу отобразить элементы foo верхнего уровня anno и domini. Я могу успешно сопоставлять местоположения самостоятельно, но не в координации с foo.
Я сделал это успешно в прошлом, но сейчас что-то ускользает от меня.
foo.h
@interface Foo : NSObject
@property (nonatomic, strong) NSString *anno;
@property (nonatomic, strong) NSString *domini;
@end
Location.h
@interface LocationData : NSObject
@property NSString *lat;
@property NSString *lon;
@end
Controller.m
RKObjectMapping *fooMapping = [RKObjectMapping mappingForClass:[Foo class]];
[fooMapping addAttributeMappingsFromArray:@[@"anno", @"domini"]];
RKObjectMapping *locationMapping = [RKObjectMapping mappingForClass:[Location class]];
[locationMapping addAttributeMappingsFromArray:@[@"lat",@"lon"]];
[fooMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"location" toKeyPath:@"location" withMapping: locationMapping]];
RKResponseDescriptor *fooReponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:dataMapping method:RKRequestMethodGET pathPattern:@"foo" keyPath:@"foo" statusCodes:[NSIndexSet indexSetWithIndex:200]];
RKResponseDescriptor *locationResponseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:locationdMapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:@"foo.location"
statusCodes:[NSIndexSet indexSetWithIndex:200]];
Я думаю, что это все из важного материала. Надеюсь, в моем рвении, чтобы оценить, сколько текста я публиковал, я не оставил ничего важного.
EDIT 2015-03-29
- (void)loadChildren {
NSDictionary *queryParams = @{@"sort" : @"new"};
[[RKObjectManager sharedManager] getObjectsAtPath:redditPath
parameters:queryParams
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
_children = mappingResult.array;
[self.tableView reloadData];
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"You mean YOU'RE the lunatic who's responsible for almost destroying my ship? : %@", error);
}];
}
redditpath установлен ранее, используя ...
redditPath = [NSString stringWithFormat:@"/r/%@/new.json", subRedditToLoad];
Где subRedditToLoad, в данном случае, ЗВС.
Показать код и модель. Что скажет журнал трассировки? – Wain
Неправильный ключевой путь для местоположений. Что GET вы называете (какой путь)? – Wain
_Ключевой путь для местоположений неверен. Я подозревал, что так много. Я не уверен, что вы просите в re: GET? –