Создание параметров запроса URL от NSDictionary возражает в ObjectiveC

​def arr = [] as String[]

или

String[] arr = [] as String[]

Это должно сделать это. Вы можете проверить это и поиграть здесь: https://groovyconsole.appspot.com/

89
задан Zev Eisenberg 5 May 2014 в 17:40
поделиться

1 ответ

Можно создать категорию для NSDictionary чтобы сделать это - нет стандартного пути в библиотеке Cocoa, которую я мог найти также. Код, который я использую, похож на это:

// file "NSDictionary+UrlEncoding.h"
#import <cocoa/cocoa.h>

@interface NSDictionary (UrlEncoding)

-(NSString*) urlEncodedString;

@end

с этой реализацией:

// file "NSDictionary+UrlEncoding.m"
#import "NSDictionary+UrlEncoding.h"

// helper function: get the string form of any object
static NSString *toString(id object) {
  return [NSString stringWithFormat: @"%@", object];
}

// helper function: get the url encoded string form of any object
static NSString *urlEncode(id object) {
  NSString *string = toString(object);
  return [string stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
}

@implementation NSDictionary (UrlEncoding)

-(NSString*) urlEncodedString {
  NSMutableArray *parts = [NSMutableArray array];
  for (id key in self) {
    id value = [self objectForKey: key];
    NSString *part = [NSString stringWithFormat: @"%@=%@", urlEncode(key), urlEncode(value)];
    [parts addObject: part];
  }
  return [parts componentsJoinedByString: @"&"];
}

@end

Я думаю довольно простой код, но я обсуждаю его еще в некоторых деталях по http://blog.ablepear.com/2008/12/urlencoding-category-for-nsdictionary.html.

47
ответ дан Don McCaughey 24 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: