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

2016年2月14日

Objective-C テクノロジー プログラミング

iOSでwebViewを使ったアプリ構築をしていると、URLに2バイト文字を使う場合が多々発生する。 そんな場合、URLエンコード、デコードを使って文字列をコントロールする事はよくある。 エンコードについての説明は省くが簡単に下のような変換を対象とする。
# 元文字列 「検索エンジン」 # エンコード後 「%8C%9F%8D%F5%83G%83%93%83W%83%93」

iOS8までの場合

## URLエンコード url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; ## URLデコード text = [text stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

iOS9移行

## URLエンコード url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]]; ## URLデコード text = [text stringByRemovingPercentEncoding];

iOS9開発時点での見解

とりあえず、現時点ではwarningなのだが、「deprecated」になってしまっているので、確実に修正しておいたほうがいいだろう。 ただし、iOS8以前の対応にする場合は、古い記述も必要になる。 まったく、フレームワークのコーディングルール(記述)をコロコロ変えられては困るんだよなあ。 できれば下位互換を担保してもらいたいものだ。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。