在NSData
和base64字符串之间进行转换的最简单,最快的代码是什么?我在SO上阅读了大量的解决方案,大多数都涉及添加另一个类等。我找到了一个很好的解决方案here,但它太复杂了。
答案 0 :(得分:57)
向下滚动到the page you linked和download the provided NSData+Base64 files上的结论部分。它是迄今为止我见过的最好的解决方案,非常容易使用。如果您可以了解有关Cocoa的任何信息,您可以学习使用该项目。
示例强>
NSString *originalString = [NSString stringWithFormat:@"test"];
NSData *data = [NSData dataFromBase64String:originalString];
NSLog([data base64EncodedString]);
以上将在将原始字符串转换为base64并返回正常的未编码字符串后打印出来。
答案 1 :(得分:41)
从iOS 7开始,NSData
现在直接使用新方法-base64EncodedDataWithOptions:
和-base64EncodedStringWithOptions:
提供此功能。 (这些选项允许您指定字符串是/应该是换行的,更好地处理电子邮件和面向用户的显示。)
答案 2 :(得分:33)
您不需要任何自定义实施。从NSData创建base64将在其他答案中显示。有相反的方向。从Base64字符串到NSData:
NSString *base64Encoded = @"some base64 string";
NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0];
答案 3 :(得分:1)
我最终使用了SUDZC提供的同一个课程
首先我执行了导入
#import "NSData+Base64.h"
然后我才能调用我的数据。
NSData *data = [[NSData alloc] initWithData:[NSData dataWithBase64EncodedString:strData]];
答案 4 :(得分:0)
或者您可以查看(非常新的)CryptoCompatibility示例项目,我认为有一个用于base64操作的包装类。它是一个MacOS示例,但它使用库libresolve.dylib,我认为也可以在iOS上使用(至少在iOS7中看到它)。
答案 5 :(得分:0)
请注意,还有更多的Base64格式。
例如,JWT使用URL safe format。