现在的位置: 首页 > 综合 > 正文

使用原生的Base64

2017年12月08日 ⁄ 综合 ⁄ 共 2037字 ⁄ 字号 评论关闭
使用原生的Base64
Base64是使用ASCII码显示二进制数据的一种流行方法。直到现在,开发者还不得不使用开源的工具来编码解码Base64的内容。
 
现在iOS7引入了以下四种新的NSData方法来操作Base64编码的数据:
  1. // From NSData.h 
  2.   
  3. /* Create an NSData from a Base-64 encoded NSString using the given options. By default, returns nil when the input is not recognized
  4.  as valid Base-64. 
  5. */ 
  6. - (id)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options; 
  7.   
  8. /* Create a Base-64 encoded NSString from the receiver's contents using the given options. 
  9. */ 
  10. - (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options; 
  11.   
  12. /* 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. 
  13. */ 
  14. - (id)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options; 
  15.   
  16. /* Create a Base-64, UTF-8 encoded NSData from the receiver's contents using the given options. 
  17. */ 
  18. - (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options; 
 
这些方法可以帮助你轻易的将NSData对象转化为Base64,或者将Base64转化为NSData object。见以下的例子:
  1.  NSData* sampleData = [@"Some sample data" dataUsingEncoding:NSUTF8StringEncoding]; 
  2.   
  3. NSString * base64String = [sampleData base64EncodedStringWithOptions:0]; 
  4. NSLog(@"Base64-encoded string is %@", base64String); // prints "U29tZSBzYW1wbGUgZGF0YQ==" 
  5.   
  6. NSData* dataFromString = [[NSData alloc] initWithBase64EncodedString:base64String options:0]; 
  7. NSLog(@"String is %@",[NSString stringWithUTF8String:[dataFromString bytes]]); // prints "String is Some sample data" 
 
如果你需要支持iOS6或者更早以前的系统,你可以使用以下两个方法:
  1. /* These methods first appeared in NSData.h on OS X 10.9 and iOS 7.0. They are deprecated in the same releases in favor of  the methods in the <code>NSDataBase64Encoding</code> category. However, these methods have existed for several releases, so 
  2. they may be used for applications targeting releases prior to OS X 10.9 and iOS 7.0. 
  3. */ 
  4. - (id)initWithBase64Encoding:(NSString *)base64String; 
  5. - (NSString *)base64Encoding; 
  来自:http://www.cocoachina.com/applenews/devnews/2014/0117/7715.html

抱歉!评论已关闭.