简体   繁体   English

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

[英]How to encode and decode NSString in iOS?

I am developing an app which should support iOS5,iOS6,iOS7. 我正在开发应支持iOS5,iOS6,iOS7的应用程序。

In my app i want to encode my NSString Data using base64encoding . 在我的应用程序中,我想使用base64encoding对我的NSString数据进行base64encoding

Following is the code I am using for encoding 以下是我用于编码的代码

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

The above code is running fine in iOS7, but in iOS6 the application crashes,with the following error: 上面的代码在iOS7中运行正常,但是在iOS6中,应用程序崩溃,并出现以下错误:

[NSConcreteMutableData base64EncodedStringWithOptions:]

Is there any other way to encode data Or any function which support iOS6 & iOS7. 是否有其他任何方式编码数据或任何支持iOS6和iOS7的功能。

Can anyone help me out with this? 谁能帮我这个忙吗?

Thanks in Advance 提前致谢

Can't comment for some reason, so I'll link to an old StackOverflow answer that provides a plausible solution. 由于某些原因无法发表评论,因此我将链接到一个旧的StackOverflow答案 ,该答案提供了一个可行的解决方案。 Basically, you convert the NSString to NSData and encode the NSData. 基本上,您将NSString转换为NSData并对NSData进行编码。

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

Of course, you could check for iOS7 and use initWithBase64EncodedString:options: for that case. 当然,在这种情况下,您可以检查iOS7并使用initWithBase64EncodedString:options: :。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM