ios – 快速的CBUUID和NSUUID之间的差异

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

我已经看到在不同的情况下用两个对象填充scanForperipheralsWithServices … Apple期望一个CBUUID对象所以我更喜欢使用这种类型或?

我的例子:

让MY_SERVICE_UUID = CBUUID(字符串:“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位等效值.如果您没有使用众所周知的值(例如,您已经创建了自己的私有服务和特征),也可以使用128位值初始化CBUUID.

例如,使用CBUUID初始化CBUUID(字符串:“180F”)是可以的(这是电池服务)但是NSUUID(字符串:“180F”)将失败,因为它需要全部128位.

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...