[Objective-C] iOS9からのURLエンコード・デコード

iOSでwebViewを使ったアプリ構築をしていると、URLに2バイト文字を使う場合が多々発生する。
そんな場合、URLエンコード、デコードを使って文字列をコントロールする事はよくある。
エンコードについての説明は省くが簡単に下のような変換を対象とする。
# 元文字列
「検索エンジン」# エンコード後
「%8C%9F%8D%F5%83G%83%93%83W%83%93」
iOS8までの場合
1 2 3 4 5 |
## URLエンコード url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; ## URLデコード text = [text stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; |
iOS9移行
1 2 3 4 5 |
## URLエンコード url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]]; ## URLデコード text = [text stringByRemovingPercentEncoding]; |
iOS9開発時点での見解
とりあえず、現時点ではwarningなのだが、「deprecated」になってしまっているので、確実に修正しておいたほうがいいだろう。
ただし、iOS8以前の対応にする場合は、古い記述も必要になる。
まったく、フレームワークのコーディングルール(記述)をコロコロ変えられては困るんだよなあ。
できれば下位互換を担保してもらいたいものだ。