将字符串转换为 NSData 并将 NSData 转换回字符串

Posted

技术标签:

【中文标题】将字符串转换为 NSData 并将 NSData 转换回字符串【英文标题】:Converting string to NSData and NSData back to string 【发布时间】:2019-02-15 07:35:07 【问题描述】:

我有以下代码:

const content: NSString = NSString.stringWithString(data);
console.log("content#1: " + content);
const nsData: NSData = content.dataUsingEncoding(NSUTF8StringEncoding);
console.log("nsData#1: " + nsData);
console.log("nsData#2: " + nsData.base64EncodedStringWithOptions(null));
NSString.new().initWithDataEncoding(nsData, NSUTF8StringEncoding)
    “data”是一个包含“DetErHemmeligt”的Typescript字符串 第 2 行打印出“DetErHemmeligt” 第 4 行总是打印出“” 第 5 行也可以使用 第 6 行崩溃,没有错误日志记录,我在这里尝试了很多东西,比如“initWithBytesLengthEncoding”,但它一直在为我崩溃,我不知道为什么。

有什么想法吗?

【问题讨论】:

你好! TS 上必须识别 Obj-c 标头的“导入”是什么? 【参考方案1】:

在我看来,您在这里通过 NativeScript 编写 Objective-c 代码,这将转换为:

[[NSString new] initWithData:nsData encoding:NSUTF8StringEncoding];

这个问题是你的对象已经被初始化了。在objective-c 中的new 调用实际上是alloc 后跟init 的简写。

[[[NSString alloc] init] initWithData:nsData encoding:NSUTF8StringEncoding];

由于您不能两次init 一个对象,因此您的应用会崩溃。相反,请尝试使用alloc

NSString.alloc().initWithDataEncoding(nsData, NSUTF8StringEncoding);

【讨论】:

哦,天哪……我已经多年没有进行任何 ObjC 编码了,非常感谢 :)

以上是关于将字符串转换为 NSData 并将 NSData 转换回字符串的主要内容,如果未能解决你的问题,请参考以下文章

将 NSData 从 NSURLSession 转换为 JSON

将 NSData 转换为 NSString 并再次转换为 NSData?

如何将 nsdata 转换为 MPMediaitem 歌曲 iOS Sdk

NSData/UIImage 到字符串

将 NSData 转换为字符串?

如何将 NSString 转换为 NSData?并且数据与字符串内容相同