RestKit GET параметры запроса

Я уже некоторое время использую RestKit 0.10.0, и до этого момента я публиковал только сериализованные объекты на своем сервере:

[[RKObjectManager sharedManager] postObject:serializedObject
                                 usingBlock:^(RKObjectLoader *loader) {
                                     loader.delegate = self;
                                     loader.objectMapping = responseMapping;
                                     loader.serializationMIMEType = RKMIMETypeFormURLEncoded;
                                     loader.targetObject = nil;
                                 }];

Все идет нормально. Но теперь мне нужно сделать GET-запрос к серверу с несколькими параметрами запроса. Первое, что пришло в голову, было сделать то же самое, что я сделал для публикации объектов:

create a serialization mapping for the object encapsulating the query parameters create a response mapping for the object being received from the server define and use a router for RKRequestMethodGET (instead of RKRequestMethodPOST) make the request using getObject:usingBlock (instead of postObject:usingBlock)

Вскоре я обнаружил, что это не способ сделать это, поэтому после поиска доступных ресурсов (RestKit Wiki, RestKit Google группа) Теперь я знаю два решения, которые считаются действительными:

Appending the query parameters to the resource path.

Это работает отлично.

NSDictionary *queryParams = [NSDictionary dictionaryWithObjectsAndKeys:
                                          token, @"accessToken",
                                          [NSNumber numberWithInt:level], @"level",
                                          [NSNumber numberWithInt:count], @"count",
                                          nil];

NSString* resourcePath = [PEER_SUGGESTIONS_CONTROLLER_PATH stringByAppendingQueryParameters:queryParams];

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:resourcePath
                                                usingBlock:^(RKObjectLoader *loader) {
                                                    loader.delegate = self;
                                                    loader.objectMapping = responseMapping;
                                                }];
Setting the query parameters in the loader block.

Это не отправляет параметры запроса.

RKParams *params = [RKParams params];
[params setValue:token forParam:@"accessToken"];
[params setValue:[NSNumber numberWithInt:level] forParam:@"level"];
[params setValue:[NSNumber numberWithInt:count] forParam:@"count"];

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:PEER_SUGGESTIONS_CONTROLLER_PATH
                                                usingBlock:^(RKObjectLoader *loader) {
                                                    loader.delegate = self;
                                                    loader.objectMapping = responseMapping;
                                                    loader.params = params;
                                                }];

Мои вопросы:

Why doesn't the second solution work? Why is the first solution working without having to set the loader.targetObject to nil, although I do not have any root key path in the JSON response? What are the cases where I should use the getObject:usingBlock method? What is its intended purpose? What should I use loader.params for? The object mapping tutorial from the wiki says this property can be used to encapsulate POST parameters, but I do not see the point since I can wrap the parameters in the serialized object that is being sent with the method postObject:usingBlock.

Благодарю.

[ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ]

Относительно ответа на мой второй вопрос: я устанавливал targetObject равным nil в блоке загрузчика при выполнении запросов POST, потому что в противном случае RestKit попытается использовать сопоставление объекта send для ответа (проверьте этоссылка на сайт для связанной дискуссии). Но так как я использую loadObjectsAtResourcePath: usingBlock:, объект не отправляется, поэтому ответ будет естественным образом отображаться в отображении ответа без необходимости устанавливать targetObject равным nil.

Ответы на вопрос(2)

Ваш ответ на вопрос