ios - swift中CBUUID和NSUUID的区别

标签 ios swift bluetooth-lowenergy

CBUUID和NSUUID对象的区别在哪里?

我已经看到在不同的情况下用两个对象填充 scanForPeripheralsWithServices...Apple 需要一个 CBUUID 对象,所以我更愿意使用这种类型还是?

我的例子:

让 MY_SERVICE_UUID = CBUUID(string: "hdl83h6sd-gl95-bn4f-37gd-jd73hd0tn8za") func scanForPeripheralsWithServices(serviceUUIDs: MY_SERVICE_UUID,nil)

最佳答案

NSUUID 是一个 128 位数字,用于唯一标识对象、类型和其他项目。它可以作为字节访问或通常以字符串形式使用 - 68753A44-4D6F-1226-9C60-0050E4C00067。该类包括用于创建随机 UUID 和使用专用值初始化的实例的方法。

蓝牙还使用 128 位标识符来表示特征和服务。 Bluetooth SIG 定义了许多“众所周知”的服务和特性。这些表示为 16 位值,与蓝牙基本 UUID 结合以获得完整的 128 位值。

CBUUID 方法知道这些众所周知的值,并且可以自动将 16 位值转换为 128 位等效值。如果您没有使用众所周知的值(即您已经创建了自己的私有(private)服务和特征),也可以使用 128 位值初始化 CBUUID

例如,使用 CBUUID(string:"180F") 初始化 CBUUID 是可以的(这是电池服务)但是 NSUUID(string:"180F") 会失败,因为它需要全部 128 位。

使用 Core Bluetooth 时,您将使用 CBUUID 来获取服务和特性。 NSUUID 用于外设标识符,因为它只是一个没有定义特殊值的 MAC。

关于ios - swift中CBUUID和NSUUID的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32749194/

相关文章:

iphone - 如何在 ios 的 webview 中使用原生 sqlite?

android - 多平台应用程序开发与操作系统开发

Swift 开关盒 "not"

bluetooth-lowenergy - Bluetooth Low Energy 最大从站数量

android - 通过低功耗蓝牙从设备发送到 Android 应用程序的数据格式

ios - Parse.com findObjects() 获取数据

objective-c - 计算问题

ios - 如何在 JSONSerialization.jsonObject 函数中使用 utf8 - swift

ios - TabBar 覆盖了 TableViewController 的 TableView(需要 Swift 解决方案)

Android BLE 问题 : Unsupported transport for background connection