Я пытаюсь создать запрос RestKit , чтобы загрузить изображение из веб-службы и добавить его к кнопке в качестве фонового изображения .Чтобы сделать это асинхронно, я пытаюсь добавить кнопку как userData к объекту RKRequest.
В чем я не уверен, так это в том, как отправить полностью сконфигурированный RKRequest, я пытался установить delegate
, вызывая prepareURLRequest
и sendAsynchronously
.Метод, который я ожидаю отозвать, не вызывается.
- (void)didFinishLoad:(RKResponse*)response
Чтобы проверить, правильно ли настроен мой запрос, я отправил его через очередь запросов, и это работает.
Как правильно отправить полностью сконфигурированные запросы с объектом userData с помощью RestKit?
- (void)sendRequestForTrackerUserGravatar:(CoreDataButton*)coreDataButton {
/ * Это работает, но не разрешает объект пользовательских данныхбыть установленным, то есть я не знаю, какое изображение кнопки было загружено.
NSMutableDictionary* paramsDictionary = [[NSMutableDictionary alloc] init];
[paramsDictionary setValue:@"identicon" forKey:@"d"];
[[RKClient sharedClient] get: [self gravatarMD5HashWithUserID: trackerUser.user_id.intValue] queryParams: paramsDictionary делегат: self];
* /
//single request for a resource, includes a dictionary of parameters to be appended to the URL
// [paramsDictionary setValue:@"retro" forKey:@"d"];
User* user = (User*)coreDataButton.managedObject;
NSString* md5Hash = [self gravatarMD5HashWithUserID:user.user_id.intValue];
NSString* urlString = [NSString stringWithFormat:@"%@%@?d=identicon",kGravatarWebsite,md5Hash];
RKRequest* request = [[RKRequest alloc] initWithURL:[NSURL URLWithString:urlString] delegate:self];
request.userData = coreDataButton;
request.delegate = self;
request.cachePolicy = RKRequestCachePolicyEnabled;
//this works
//[[RKRequestQueue sharedQueue] addRequest:request];
//this does not seem to call back the delegate method
[request prepareURLRequest];
[request sendAsynchronously];
}
//request callback, does not get called
- (void)didFinishLoad:(RKResponse*)response
{
[self processResponse:response];
}
//queue callback, DOES get called
-(void)requestQueue:(RKRequestQueue *)queue didLoadResponse:(RKResponse *)response
{
[self processResponse:response];
}