在iOS 7 +中的Base64解码

我有编码的文本( NSString )使用NSData类新的API,这是在iOS7中添加。

使用这个

 - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; 

这是我的代码

 NSString *base64EncodedString = [[myText dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0]; NSLog(@"%@", base64EncodedString); 

我正在寻找解码

Swift 3(iOS 10+)

 let plainString = "foo" 

编码

 let plainData = plainString.data(using: .utf8) let base64String = plainData?.base64EncodedString() print(base64String!) // Zm9v 

解码

 if let decodedData = Data(base64Encoded: base64String!), let decodedString = String(data: decodedData, encoding: .utf8) { print(decodedString) // foo } 

斯威夫特<3

 let plainString = "foo" 

编码

 let plainData = plainString.dataUsingEncoding(NSUTF8StringEncoding) let base64String = plainData?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) print(base64String!) // Zm9v 

解码

 let decodedData = NSData(base64EncodedString: base64String!, options: NSDataBase64DecodingOptions(rawValue: 0)) let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) print(decodedString) // foo 

Objective-C的

 NSString *plainString = @"foo"; 

编码

 NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding]; NSString *base64String = [plainData base64EncodedStringWithOptions:0]; NSLog(@"%@", base64String); // Zm9v 

解码

 NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0]; NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding]; NSLog(@"%@", decodedString); // foo 

如果你想写回退代码,从NSURL注意一开始就已经出现在base64的解码:

 NSURL *URL = [NSURL URLWithString: [NSString stringWithFormat:@"data:application/octet-stream;base64,%@", base64String]]; return [NSData dataWithContentsOfURL:URL];