Я делаю многостраничную публикацию данных изображения и некоторых значений, используя RKClient RestKit, например:
RKParams* params = [RKParams params];
[params setValue:foo.accountId forParam:@"accountId"];
[params setValue:foo.identifier forParam:@"fooId"];
[params setValue:_photoId forParam:@"photoId"];
[params setData:data MIMEType:@"image/png" forParam:@"image"];
[[RKClient sharedClient] post:@"/foo/uploadPhoto" params:params delegate:self];
Это прекрасно работает, и мой внутренний сервер отвечает JSON-представлением объекта модели на стороне сервера, это выглядит так:
{"id":"4ee2b4670364720c089e75b9","accountId":"4ebee3469ae2d8adf983c561","fooId":"4ec0983d036463d900841f0b","photoId":"E5B20AF1-9F10-4175-8262-852BDA3DEDE9","filename":"4ebee3469ae2d8adf983c561_4ec0983d036463d900841f0b_E5B20AF1-9F10-4175-8262-852BDA3DEDE9","contentType":"image/png"}
Теперь мне нужно сопоставить это с объектом модели на стороне клиента (iOS). Объект модели на стороне клиента почти такой же, но не идентичен (поэтому использование метода RKJSONParser objectFromString не вариант), поэтому у меня есть определенный RKObjectMapping, который обрабатывает сопоставление. Делегат RKClient получает только RKResponse, так как я могу использовать ответ вместе с картографом, чтобы получить экземпляр моего объекта модели на стороне клиента?
Примечание. Чтобы было ясно, я очень хорошо знаком с тем, как это работает при использовании RKObjectManager для публикации объекта и сопоставления ответа. Уникальная часть моей ситуации заключается в том, что я использую RKClient для создания поста, состоящего из нескольких частей. К сожалению, RKClient, похоже, не имеет простых методов для обработки сопоставления ответов, как это делает RKObjectManager ... если только я что-то не упустил (на что я надеюсь и что вы все мне укажете;).