У меня есть небольшое приложение, использующее RestKit с сервером, поддерживаемым Sinatra.Когда я размещаю объект пользователя на сервере, сервер успешно сохраняет пользователя и отвечает представлением json только что созданного пользователя.
Вот код для создания пользователя на клиенте:
User *currentUser = [User currentUser];
currentUser.email = @"jacob@mail.com";
currentUser.firstName = @"Jacob";
currentUser.lastName = @"Morris";
currentUser.phone = @"2088956709";
currentUser.deviceId = @"MY-DEVICE-ID";
currentUser.password = @"password";
currentUser.passwordConfirmation = @"password";
currentUser.timeStamp = [NSNumber numberWithFloat:3987987987.12233]; //totally random
RKSpecResponseLoader *loader = [RKSpecResponseLoader responseLoader];
[dataController.rkObjectManager postObject:currentUser mapResponseWith:[User rkObjectMapping] delegate:loader];
[loader waitForResponse];
NSLog(@"Current user id is now: %@", currentUser.userId);
STAssertTrue([loader success], @"response from server should be a success");
Ответ, возвращаемый с сервера, выглядит следующим образом:
"{\"user\":{\"deviceId\":\"MY-DEVICE-ID\",\"email\":\"jacob@mail.com\",\"userId\":5,\"lastName\":\"Morris\",\"phone\":\"\",\"timeStamp\":3987987968.0}}"
Сервер отвечает за назначение userId
при успешном создании объекта.Когда ответ вернется, я бы хотел, чтобы объект currentUser был обновлен на стороне клиента.Я думаю, что это должно быть возможно, так как я передаю ссылку на опубликованный объект загрузчику объектов.Как я могу заставить загрузчик объектов обновлять userId после успешного ответа?(Я хотел бы иметь возможность сделать это, не захватывая сам ответ.)