将字符串转换为 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?