Objective-cでNSStringをbase64 encode

Posted on
Objective-c base64

ios7から、NSDatabase64EncodedStringWithOptions:というメソッドが新たに追加され、base64 encodingが楽になりました。しかも、ios7より以前のバージョン用に、それまでprivateだったbase64Encodingというメソッドがpublicになりました。

NSStringをbase64でencodeしたNSStringに変換するには、以下のようにやります。

NSString *string = @"foo";
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = nil;

if ([data respondsToSelector:@selector(base64EncodedStringWithOptions:)])
{
    //ios 7
    base64EncodedString = [data base64EncodedStringWithOptions:0];
}
else
{
    // pre ios 7
    base64EncodedString = [data base64Encoding];
}