NativeScript:从interop.reference获取string

开始,这里是我的代码:

var buffer = malloc(interop.sizeof(interop.types.UTF8CString)); var fillBuffer = mac.getBytes(buffer); var bytes = new interop.Reference(interop.types.UTF8CString, buffer); var hexMac = bytes[0]; 

variables“Mac”是从CoreBluetooth检索到的NSData对象。 这是来自BLE设备的扫描响应,其中包含外设的MAC地址(00:0b:57:a2:fb:a0)。

这个问题与我之前发布的这个问题有关。

提供的解决scheme是伟大的; 不过,我似乎无法在nativescript中实现这一点:

(instancetype)stringWithFormat:(NSString *)格式,…;

智能感知告诉我方法不存在typesNSString。

由于这个问题,我决定去另一条路线(如你所知)。 我用MAC地址的字节填充缓冲区。 在上面的代码中,bytes [0]等于0xb57a2fba0。

我现在试图将(这是一个interop.Reference)转换成一个string,我可以存储在后端(最好是在xx:xx:xx:xx:xx格式)。

我整个周末都在这里,似乎无法find解决办法。 我甚至打破了objc!foundation.d.ts来判断stringWithFormat是否被支持,无济于事。

当地社区的松懈也无法提供解决scheme。

如果可以的话请帮忙!

我根本不知道关于NativeScript的任何信息,但是考虑到你写的其他代码,我假设你先调用+alloc ,那么就等于使用+stringWithFormat:初始化的一个实例方法)而不是+stringWithFormat:一个处理分配和初始化的类方法)。