在IOS7之后,苹果提供了将NSData转化为Base64编码的API
<span style="font-size:18px;">
/* Create an NSData from a Base-64 encoded NSString using the given options. By default, returns nil when the input is not recognized as valid Base-64.
*/
- (instancetype)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);
/* Create a Base-64 encoded NSString from the receiver's contents using the given options.
*/
- (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);
/* Create an NSData from a Base-64, UTF-8 encoded NSData. By default, returns nil when the input is not recognized as valid Base-64.
*/
- (instancetype)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);
/* Create a Base-64, UTF-8 encoded NSData from the receiver's contents using the given options.
*/
- (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);</span>
其中前两个方法是用来处理字符串的,后两个方法是用来处理UTF-8编码数据的。比如如果是将编码字符串用作JSON数据,使用前两个方法,而将编码字符串写入文件,使用后两个。
对于IOS7之前的版本,以下API应该是之前就存在,只是之前为私有方法:
<span style="font-size:18px;">- (id)initWithBase64Encoding:(NSString *)base64String NS_DEPRECATED(10_6, 10_9, 4_0, 7_0);
- (NSString *)base64Encoding NS_DEPRECATED(10_6, 10_9, 4_0, 7_0);</span>
对于IOS7之后在NSData通过Base64转化为NSString时,有一个枚举参数:NSDataBase64EncodingOptions有四个值,在将其转化为NSString时,对其进行了处理:
NSDataBase64Encoding64CharacterLineLength
其作用是将生成的Base64字符串按照64个字符长度进行等分换行。
NSDataBase64Encoding76CharacterLineLength
其作用是将生成的Base64字符串按照76个字符长度进行等分换行。
NSDataBase64EncodingEndLineWithCarriageReturn
其作用是将生成的Base64字符串以回车结束。
NSDataBase64EncodingEndLineWithLineFeed
其作用是将生成的Base64字符串以换行结束。