Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何多次使用相同的键构建URL?_Ios_Objective C_Afnetworking 2 - Fatal编程技术网

Ios 如何多次使用相同的键构建URL?

Ios 如何多次使用相同的键构建URL?,ios,objective-c,afnetworking-2,Ios,Objective C,Afnetworking 2,我正在构建一个iOS应用程序,它可以向URL发出GET请求。对于它发出的所有请求,我根据基本url构建url,然后使用NSDictionaryKey-Value\u对添加参数 我还使用AFNetworking 2.0来发出请求——它还使用提供的NSDictionary键构建URL 我现在遇到了一个问题,我需要使用的web服务需要多个键是相同的,具有不同的值。使用NSDictionary 这意味着我无法成功运行web服务 下面是一个我需要最终URL的示例- ..…&includeDeserids=

我正在构建一个iOS应用程序,它可以向URL发出
GET
请求。对于它发出的所有请求,我根据基本url构建url,然后使用
NSDictionary
Key-Value\u对添加参数

我还使用
AFNetworking 2.0
来发出请求——它还使用提供的NSDictionary键构建URL

我现在遇到了一个问题,我需要使用的web服务需要多个键是相同的,具有不同的值。使用
NSDictionary

这意味着我无法成功运行web服务

下面是一个我需要最终URL的示例-

..…&includeDeserids=12345&includeDeserids=2345

上面URL的斜体部分是我试图使用AFNetworking和NSDictionary构建的。我想我将不得不使用比NSDictionary更先进的东西来实现这一点

有人有什么想法吗

编辑

如果我使用NSSet像这样设置NSDictionary参数,找到了一半的解决方案:

    [self.parameters setObject:[NSSet setWithObjects:@"12345",@"2345", nil] forKey:@"IncludedUserIds"];
这是我需要的。不过,我有一个跟进问题:


这些值需要动态添加到NSSet-如何创建一个可以在运行时接受额外值的NSSet

当然可以,因为
&includederserids=12345&includederserids=2345
应该与
&includederserids=123452345
相同


因此,在paramaters字典中,只有一个数组作为键的值。

我设法解决了这个问题:

我刚刚在NSDictionaray中创建了如下对象:

    [self.myDictionary setObject:[NSSet setWithArray:self.myArray] forKey:@"myKeyNeeded];
数组中有NSString对象,这似乎工作得很好。
由于需要从NSDictionary中轻松删除对象,我使用了array而不是NSMutableSet

这就是问题所在——服务器不理解逗号分隔的字符串。它将每个“includeDeserID”视为一个数组。因此IncludeDeserids=1234523456-不存在。但是,includeDeserids=12345,includeDeserids=2345-返回两个存在的值。那么使用
AFNetworking
,至少使用默认类,您会遇到真正的问题。您必须滚动自己的
AFURLConnectionOperation
子类,该子类将
NSArray
作为参数。也就是说,您的服务器实现也没有遵守HTTP标准,这是这里真正的问题;我找到了一种解决办法。你知道如何解决最后一点吗?非常感谢您的帮助。在最后一部分中,使用
NSMutableSet
我使用了一个NSMutableArray,因为我需要能够删除某个值-我不认为使用NSMutableSet可以轻松实现这一点,因为它没有objectAtIndex方法。谢谢你!!