RestKit 0.20 - 具有相同名称的多个查询参数?

时间:2013-03-04 20:39:11

标签: ios rest restkit

我有一个iOS应用程序,它使用RestKit 0.20-rc1来实现RESTful服务。我正在尝试执行GET,我提供了多个具有相同名称的查询参数来检索一组相同类型的对象。例如,我的网址如下:

http://mysite.com/rest/myobjects?objID=123&objID=234&objID=345

我的网络服务能够接受这样的查询并返回相应的对象。我在客户端上的RestKit代码如下所示:

NSDictionary *params = ...
RKObjectManager *objMgr = [RKObjectManager sharedManager];
[objMgr getObjectsAtPath:@"/rest/myobjects" parameters:params success:nil failure:nil];

我的问题是,必须将参数指定为NSDictionary,并且我有多个具有相同名称的参数。我尝试将NSDictionary中的值设置为包含所有参数值的NSArray,但这不起作用。

如何使用此方法在RestKit中指定多个具有相同名称的查询参数?这只是在RestKit中不支持吗?

2 个答案:

答案 0 :(得分:0)

听起来使用RestKit代码是不可能的。你可以:

  1. 更改代码以允许NSArrays。 RestKit是https://github.com/RestKit
  2. 的开源软件
  3. 询问RestKit谷歌小组,了解其他人如何解决这个问题。 https://groups.google.com/forum/?fromgroups#!forum/restkit
  4. 向RestKit提交补丁并等待支持您要求的版本。

答案 1 :(得分:0)

您可以将带有参数的查询放在getObjectAtPath中。含义使用如下参数创建一个字符串:

NSString *queryPath = @"getNames?names=bob&names=joe&names=joey";

然后执行此操作(请注意此处parameters对象为nil):

[[RKObjectManager sharedManager] getObjectsAtPath:queryPath
                                           parameters:nil
                                              success:nil failure:nil];

如果编码有问题,请执行以下操作: queryPath = [queryPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];