Как я могу сопоставить несколько объектов с одним JSON-объектом?Слияние объектов для RestKit
Вот мои два объекта
#import <RestKit/RestKit.h>
@interface Account : NSObject
@property NSInteger id;
@property NSString* secret;
@end
@implementation Account @end
@interface Entry : NSObject
@property NSString* name;
@end
@implementation Entry @end
И я хочу, чтобы отобразить эти объекты в следующем формате JSON:
/* Goal JSON:
{
"id":10,
"secret":"supersecret",
"eventName":"Hayooo"
}
*/
Первая попытка была с помощью RKMapperOperation непосредственно:
void testMergeMap(){
Account* account = [Account new];
account.id = 10;
account.secret = @"supersecret";
Entry* entry = [Entry new];
entry.name = @"Hayooo";
RKMapperOperation* mapper = [[RKMapperOperation alloc]
initWithRepresentation:@{@"account":account, @"entry":entry} mappingsDictionary:@{@"account.id": @"id", @"account.secret":@"secret", @"entry.name":@"eventName"}];
[mapper start];
RKMappingResult* result = mapper.mappingResult;
NSLog(@"%@", result.dictionary.description);
}
Но это сбой, не может действительно что-то сделать с ошибкой.
Итак, как мне это сделать?
EDIT
Я также попытался это
RKObjectManager* testSimpleMap(Account* account, Entry* entry){
RKObjectMapping* map = [RKObjectMapping requestMapping];
[map addAttributeMappingsFromDictionary:
@{@"account.id": @"id",
@"account.secret": @"secret",
@"entry.name":@"eventName"}];
RKObjectManager* man = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://google.com"]];
RKRequestDescriptor* requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:map objectClass:nil rootKeyPath:nil method:RKRequestMethodPOST];
[man addRequestDescriptor:requestDescriptor];
[man postObject:@{@"account":account, @"entry":entry} path:@"/" parameters:nil success:nil failure:nil];
return man;
}
Но мы не можем создать requestDescriptors без класса, так что не работает. Но я думаю, что полезно знать, к чему я стремлюсь. Если бы это сработало, это было бы здорово!
Не стесняйтесь редактировать, пожалуйста, не редактируйте таким образом, чтобы он больше не копировался и не использовался в редакторе. Я позаботился о том, чтобы сделать его самодостаточным, не разрушайте это. – Nick