Diferencias entre CBUUID y NSUUID en swift

¿Dónde están las diferencias entre el CBUUID y el object NSUUID?

He visto llenar el scanForPeripheralsWithServices con ambos objects en diferentes casos … Apple espera un object CBUUID, así que preferiría usar este tipo o?

Mi ejemplo

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

Un NSUUID es un número de 128 bits que se utiliza para identificar de manera única objects, types y otros elementos. Se puede acceder como bytes o se usa comúnmente en forma de cadena: 68753A44-4D6F-1226-9C60-0050E4C00067. La class incluye methods para crear UUID aleatorios e instancias inicializadas con un valor especializado.

Bluetooth también utiliza identificadores de 128 bits para características y services. El SIG Bluetooth ha definido muchos services y características "conocidos". Estos se representan como un valor de 16 bits que se combina con el UUID base Bluetooth para get el valor total de 128 bits.

Los methods CBUUID son conscientes de estos valores bien conocidos y pueden transformar automáticamente los valores de 16 bits en su equivalente de 128 bits. Un CBUUID también se puede inicializar con un valor de 128 bits si no está utilizando valores bien conocidos (es decir, ha creado sus propios services y características privadas)

Por ejemplo, inicializar un CBUUID con CBUUID(string:"180F") está bien (este es el service de batería) pero NSUUID(string:"180F") fallará porque necesita todos los 128 bits.

Cuando trabaje con Core Bluetooth, usará CBUUID para services y características. Se utiliza un NSUUID para el identificador periférico ya que es solo un MAC sin valores especiales definidos.