Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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 NSURLSessionTask使用NSDictionary设置参数_Ios_Objective C_Nsurlrequest_Nsurlsession - Fatal编程技术网

Ios NSURLSessionTask使用NSDictionary设置参数

Ios NSURLSessionTask使用NSDictionary设置参数,ios,objective-c,nsurlrequest,nsurlsession,Ios,Objective C,Nsurlrequest,Nsurlsession,我几乎可以肯定,我最近看到了一种与网络相关的方法,它允许使用NSDictionary设置URL参数 它是新NSURLSession类的一部分,但我找不到它 本质上,不是像这样做url @"www.blah.com/something.php?value=18&name=hello" 你可以 theRequest.parameters = @{@"value":@18, @"name":@"hello"}; 这是我想象的还是存在的?为什么不自己写呢? 您可以使用它,只要在将值放入字典时

我几乎可以肯定,我最近看到了一种与网络相关的方法,它允许使用
NSDictionary
设置URL参数

它是新NSURLSession类的一部分,但我找不到它

本质上,不是像这样做url

@"www.blah.com/something.php?value=18&name=hello"
你可以

theRequest.parameters = @{@"value":@18, @"name":@"hello"};

这是我想象的还是存在的?

为什么不自己写呢? 您可以使用它,只要在将值放入字典时保持正确的顺序即可

- (NSString *)makeURLFromDictionary:(NSString *)url values:(NSDictionary *)dictionary
  {
NSMutableString *string = [[NSMutableString alloc]initWithString:url];
[string appendString:@"?"];
for (id key in dictionary) {
    [string appendString:key];
    [string appendString:@"="];
    [string appendString:[dictionary objectForKey:key]];
    [string appendString:@"&"];
}
//this will remove the last &
[string deleteCharactersInRange:NSMakeRange([string length]-1, 1)];

return string;
}
请检查返回的字符串,如果我没有错的话,你应该把它倒过来,F.I.L.O(先进先出风格)

输入dict的值,如下所示:

NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"hello" forKey:@"name"];
[dict setObject:@"18" forKey:@"value"];

NSString *urlString = [self makeURLFromDictionary:@"www.blah.com/somthing.php" values:dict];

希望我能帮你。

看看这个,如果它不存在,为什么不写呢?:)经常使用这种模式
NSURLSession
方法本身并不将字典作为请求的参数,但编写代码将字典转换为JSON或
application/x-www-form-urlencoded
请求并不困难。但是AFNetworking通常会让你的生活更轻松。@Rob我一直在考虑使用AFNetworking。我不知道是否真的需要它。我正在启动一个全新的项目,所以我会看一看。+1顺便说一句,请确保您在
=
之后添加的值上调用
CFURLCreateStringByAddingPercentEscapes
(如本章后半部分所示)。