NSDataにBase64のエンコード・デコード機能を追加する


今回はNSDateにカテゴリーを使ってBase64のエンコード・デコード機能を追加します。
テストアプリは以下のような画面です。(Encode結果表示中)

左下の文字コード指定はエンコードされたテキストをデコードするときのオリジナルの文字コードを指定するものです。(下図は上図でエンコードした結果をデコードした結果)



Base64のエンコード・デコード用カテゴリー

NSDataに追加するメソッドは以下の3つです。

// Base64文字列をデコードし、NSDataオブジェクトを生成する(ASCII文字列より)
+ (NSData *)dataWithBase64CString:(const char *)pcBase64 length:(long)lLength;

// Base64文字列をデコードし、NSDataオブジェクトを生成する(NSStringより)
+ (NSData *)dataWithBase64String:(NSString *)pstrBase64;

// Base64にエンコードした文字列を生成する
- (NSString *)stringEncodedWithBase64;

最初の2つのメソッドはデコーダーで、上がRAWデータから、下がNSStringからのデコーダーです。
最後のメソッドはエンコーダーです。

コードの内容はソースを参照してください。Base64のアルゴリズムについてはRFC3548を参照してください。

サンプルプログラムのダウンロード(60KB)

【作成・確認環境】
MacOS X v10.4.7
Xcode v2.3

一覧に戻る