如何在 CoreBluetooth 中测试两个 CBPeripherals 的相等性?

How to test equality on two CBPeripherals in CoreBluetooth?

所以基本上我在扫描设备期间保留了一个外围设备池。当我发现一个外围设备时,我想首先检查该外围设备是否已经在我的池中。如果它已经在池中,那么我只想更新我已经拥有的那个外围设备的句柄。如果它不在池中,我想将它添加到池中。

问题是 CoreBluetooth 不再允许访问外围设备的 UUID。 iOS 7.1.

中弃用了用于访问设备 UUID 的两种方法

那么在CoreBluetooth中测试外设是否相等的正确方法是什么?

是的,CBPeripheral class 已弃用它。但是新的"identifier"属性被添加到CBPeersuperclass,从中CBCentralCBPeripheral 继承.

所以现在你应该使用:

peripheral.identifier.UUIDString

您可以在这里查看 AP 的变化: https://developer.apple.com/library/ios/releasenotes/General/iOS80APIDiffs/frameworks/CoreBluetooth.html