Google カスタム検索エンジンを使用してアプリを作成しています。
検索エンジン ID XXXXXXXX21914382657 1:7 h9XXXXXXX (最も興味深い部分は太字) を受け取りました。
今、私は NSURLQueryItem を使用して、次を使用して ID を URL に埋め込もうとしています。
let params = ["cx" : engineID,...]
...
components.queryItems = parameters.map {
NSURLQueryItem(name: String($0), value: String($1))
}
エスケープ項目をXXXXXXXXX21914382657 1%3A 7h9XXXXXXXにパーセンテージする必要があります (この値は、テスト中に Google API エクスプローラーを使用したときに得られたもので、使用された URL ドレスを示しています)。それはしていません。エスケープせずに URL を取得していますが、変更はありません。このマッピングでエンジン ID としてエスケープされた文字列を使用すると、エスケープされた文字列XXXXXXXX21914382657 1%253A 7h9XXXXXXXが取得されます (追加の '25' がクエリに追加されます)。
誰かがそれを修正する方法を教えてもらえますか? String を使用してから URL に変換したくありませんNSURL(string: str)!
。エレガントではありません。
編集:
アプリ Info.plist を使用して ID を保存しています。次のように呼び出して取得します。
String(NSBundle.mainBundle().objectForInfoDictionaryKey("ApiKey")!)