happy_ryo

2014.09.26

Swift で URL のクエリストリングを簡単に書きたい(エンコードしたい)

お久しぶりです、happy_ryo です。
最近、個人で書いているアプリは Objective-C ではなくて、Swift で書いてみるようにしています。

HTTP の GET リクエストのクエリストリングは、format などでベタで書かずに、一旦 Dictionary に格納してリクエストを投げる前に生成する派なのですが
そんな中、Objective-C でもよく有った、String に標準で用意されている API では URL エンコードをするには不十分、というアレと向き合う必要があったので、iOS8 も出た事だし思い切って iOS6 を切り捨てて iOS7 以上対応で書いてみました。

iOS6 までは CFURLCreateStringByAddingPercentEscapes を使って解決するのが一般的な方法でしたが、今回は iOS7 で追加された stringByAddingPercentEncodingWithAllowedCharacters を使います。

Playground にベロッと貼り付ければ、出力を実際に確認する事が出来ます。
Swift は諸々の理由で業務に乗ってくるのには時間がかかると思いますが、cocoa が swift に切り替わる未来が「来れば」乗り換えるメリットが大きくなるので、これからも追いかけていこうと思います。

このエントリ内のコードは APL 2.0 です。