首先,这是我的代码:

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];


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

此问题与我之前发布的THIS问题有关。

提供的解决方案很棒;但是,我似乎无法在nativescript中实现这一点:

(instancetype)stringWithFormat:(NSString *)format,...;

Intellisense告诉我该方法在NSString类型上不存在。

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

我现在正在尝试将其(是一个interop.Reference)转换为可以存储在后端的字符串(最好以xx:xx:xx:xx:xx格式)。

我整个周末都待在这里,似乎找不到解决方法。我什至分解了objc!foundation.d.ts来确定是否支持stringWithFormat,但没有用。

nativescript社区的懈怠也无法提供解决方案。

如果可以的话请帮忙!

最佳答案

我完全不了解NativeScript,但是鉴于您编写的其他代码,我假设您首先调用+alloc,因此意味着要使用-initWithFormat:(初始化的实例方法)而不是+stringWithFormat: (处理分配和初始化的类方法)。

关于ios - NativeScript:从interop.reference获取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46518084/

10-11 23:09
查看更多