Я пишу приложение, используя Google custom search engine.Неверное кодирование NSURLQueryItem для Google CSE
Я получил поисковой ID XXXXXXXX21914382657 1: 7 h9XXXXXXX (самая интересная часть полужирный).
Теперь я пытаюсь использовать NSURLQueryItem встроить свой идентификатор в URL с помощью:
let params = ["cx" : engineID,...]
...
components.queryItems = parameters.map {
NSURLQueryItem(name: String($0), value: String($1))
}
Он должен процент бежать элемент в XXXXXXXX21914382657 1% 3A 7h9XXXXXXX (Это значение я получаю при использовании Google API-браузера во время тестирования он показывает, что было использовано url-платье). Он этого не делает. Я получаю url без выхода, никаких изменений. Если я использую escaped string в качестве идентификатора двигателя в этом сопоставлении, я получаю строку с экранированием XXXXXXXX21914382657 1% 253A 7h9XXXXXXX (в запрос добавляется дополнительная '25').
Может ли кто-нибудь сказать мне, как исправить это? Я не хочу использовать String, а затем конвертировать его в URL-адрес на NSURL(string: str)!
. Это не изящно.
Edit:
Я использую приложение info.plist, чтобы сохранить идентификатор и я получить его по телефону:
String(NSBundle.mainBundle().objectForInfoDictionaryKey("ApiKey")!)