如何在iOS中编码和解码NSString?

时间:2014-02-05 07:06:59

标签: objective-c ios5 ios6 ios7

我正在开发一款应该支持iOS5,iOS6,iOS7的应用程序。

在我的应用中,我想使用NSString对我的base64encoding数据进行编码。

以下是我用于编码的代码

NSString *userData = @"data";
NSString *base64EncodedString = [[userData dataUsingEncoding:NSUTF8StringEncoding] 
base64EncodedStringWithOptions:0];

以上代码在iOS7中运行正常,但在iOS6中应用程序崩溃,出现以下错误:

[NSConcreteMutableData base64EncodedStringWithOptions:]

有没有其他方法可以编码数据或任何支持iOS6& iOS7。

任何人都可以帮我解决这个问题吗?

先谢谢

1 个答案:

答案 0 :(得分:1)

由于某些原因无法发表评论,因此我会链接到提供合理解决方案的old StackOverflow answer。基本上,您将NSString转换为NSData并对NSData进行编码。

+ (NSString *)toBase64String:(NSString *)string {
    NSData *data = [string dataUsingEncoding: NSUnicodeStringEncoding];
    NSString *ret = [NSStringUtil base64StringFromData:data length:[data length]];
    return ret;
}

当然,您可以检查iOS7并使用initWithBase64EncodedString:options:来处理该情况。