iOS プロジェクトで Base64 エンコード/デコードを行う

iOS プロジェクトで Base64 エンコードが必要になったので、取り急ぎ簡単な方法を探しました。
確認は Mac OS X 10.7.3 / Xcode 4.3.1 で行っています。

(1) http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html から NSData_Base64.zip をダウンロードし、解凍します。

(2) NSData_Base64 フォルダ内にある NSData+Base64.h と NSData+Base64.m の2ファイルを開発中のプロジェクトに追加します。

(3) あとはエンコードしたいところで、

// Encode base64
NSData *targetData = ...
NSString *encodedString = [targetData base64EncodedString];

デコードなら、

// Decode base64
NSString *base64String = ...
NSData * decodedData = [NSData dataFromBase64String:base64String];

といった具合に使用します。NSData+Base64.h のインポートを忘れないようにしましょう。

OpenSSL を使っても Base64 エンコーディングできるようですが、OpenSSL 関連のライブラリは iOS に含まれていないので、今回その方法は採用しませんでした。
ここ http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html には OpenSSL を使用した方法も説明されているので、興味のある方はどうぞ。

ちなみに、-base64EncodedString を使用した場合、64文字ごとに改行した Base64 文字列が生成されます。このとき使用される改行コードは CR+LF です。改行して欲しくないとか、80文字ごとで改行して欲しいなどの要求がある場合は、ソースを少しだけ調整すれば対応可能なようですので、ソースを一読されることをお勧めします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA