在NSData和base64string之间转换

什么是最简单和最快的代码做NSData和base64string之间的转换? 我已经阅读了大量的解决scheme,主要涉及添加另一个类。我在这里find了一个很好的解决scheme,但它太复杂了。

向下滚动到您链接的页面上的 “ 结论”部分,然后下载提供的NSData + Base64文件 。 这是迄今为止我看到的最好的解决scheme,并且非常易于使用。 如果你可以学习任何有关cocoa,你可以学习使用该项目。


 NSString *originalString = [NSString stringWithFormat:@"test"]; NSData *data = [NSData dataFromBase64String:originalString]; NSLog([data base64EncodedString]); 

上面的代码将打印出原始string,并将其转换为base64并返回到正常的未编码string。

从iOS 7开始, NSData现在直接使用新的方法-base64EncodedDataWithOptions:-base64EncodedStringWithOptions:提供这个function。 (这些选项可以让你指定string是/,应该是行包装,处理电子邮件和面向用户的显示更好。

您不需要任何自定义实现。 在其他答案中显示从NSData创buildbase64。 有相反的方向。 从Base64string到NSData:

  NSString *base64Encoded = @"some base64 string"; NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0]; 

我最终使用了由SUDZC提供的同一个class级

执行很容易,我做了一个导入

  #import "NSData+Base64.h" 

那么我可以打电话给我的数据。

  NSData *data = [[NSData alloc] initWithData:[NSData dataWithBase64EncodedString:strData]]; 

或者你可以看看(相当新的) CryptoCompatibility示例项目,我认为有一个用于base64操作的包装类。 这是一个MacOS示例,但它使用库libresolve.dylib,我认为也可以在iOS上使用(在iOS7中至less可以看到它)。