是否可以将NSString转换为NSData?

我已经将NSData转换为NSString,现在我想将NSString转换回NSData。

在这里我将NSData转换为String

NSData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"actual data Before converted to a string: %@",actualData);

NSString *test = [[NSString alloc] initWithFormat:@"%@",actualData];

是否可以将NSString恢复为NSData格式?

编辑:

用于编码我的NSData变量的代码:

NSMutableData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"actual data Before converted to a string: %@",actualData];
NSLog(@"Pre encoded data: %@",test);
NSData *plainData = [test dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Mid encoded data variable: %@",plainData);
NSString *base64String = [plainData base64EncodedStringWithOptions:0];

解码代码:

NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSLog(@"check the decoded data: %@",decodedData);
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"Decoded String Afterwards: %@",decodedString);

我可以做得比这更远,然后将其恢复为原始的actualData值吗?

tjlyu 回答:是否可以将NSString转换为NSData?

有两种方法将Data转换为String,反之亦然。

–如果 data 表示可读字符串,请使用NSString的initWithData:encoding:dataUsingEncoding:。两者的encoding值必须匹配。

–如果 data 表示原始数据(例如图像),请使用NSData的base64EncodedStringWithOptions:initWithBase64EncodedString:options:

但是切勿使用NSString的initWithFormat并传递NSData对象。那没有意义。

本文链接:https://www.f2er.com/3160418.html

大家都在问