【问题标题】:Converting string to NSData and NSData back to string将字符串转换为 NSData 并将 NSData 转换回字符串
【发布时间】: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)
  1. “data”是一个包含“DetErHemmeligt”的Typescript字符串
  2. 第 2 行打印出“DetErHemmeligt”
  3. 第 4 行总是打印出“”
  4. 第 5 行也可以使用
  5. 第 6 行崩溃,没有错误日志记录,我在这里尝试了很多东西,比如“initWithBytesLengthEncoding”,但它一直在为我崩溃,我不知道为什么。

有什么想法吗?

【问题讨论】:

  • 你好! TS 上必须识别 Obj-c 标头的“导入”是什么?

标签: typescript nativescript-plugin


【解决方案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 编码了,非常感谢 :)
猜你喜欢
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多