Swift UUID 与 CoreBluetooth 和 HealthKit 的使用不明确
Swift ambiguous use of UUID with CoreBluetooth and HealthKit
我正在创建一个 iOS Swift 应用程序,它需要访问 CoreBluetooth 才能与心率监测器进行交互。这工作正常。
我也想使用 HealthKit 保存心率,但是当我将 HealthKit 导入应用程序时(即使在单独的文件中)我收到以下错误;
这与 service.UUID 有关。虽然这里只打印行,但 service.UUID 用于其他位置并给出相同的错误。然而,如果没有 HealthKit 导入,service.UUID 工作正常。
func peripheral(peripheral: CBPeripheral!, didDiscoverServices error: NSError!) {
for service in peripheral.services{
NSLog("Discovered service: \(service.UUID)")
peripheral.discoverCharacteristics(nil, forService: service as CBService)
}
}
我分别使用了 HealthKit 和 CoreBluetooth,它们工作正常,但将两者结合使用会出现歧义错误。有没有办法明确告诉它应该使用哪个?
谢谢,
HealthKit 会在您创建对象时为其分配一个 UUID。如果您想添加自己的唯一 ID,请使用 HKMetadataKeyExternalUUID 键将其添加到对象的元数据中。
问题是 CBService 和 HealthKit 都有 UUID 属性。当你调用 peripheral.services
时,它 returns 是一个 AnyObject
数组。所以解决这个问题类型转换为 CBService
.
for service in peripheral.services as [CBService]
{
}
我正在创建一个 iOS Swift 应用程序,它需要访问 CoreBluetooth 才能与心率监测器进行交互。这工作正常。
我也想使用 HealthKit 保存心率,但是当我将 HealthKit 导入应用程序时(即使在单独的文件中)我收到以下错误;
这与 service.UUID 有关。虽然这里只打印行,但 service.UUID 用于其他位置并给出相同的错误。然而,如果没有 HealthKit 导入,service.UUID 工作正常。
func peripheral(peripheral: CBPeripheral!, didDiscoverServices error: NSError!) {
for service in peripheral.services{
NSLog("Discovered service: \(service.UUID)")
peripheral.discoverCharacteristics(nil, forService: service as CBService)
}
}
我分别使用了 HealthKit 和 CoreBluetooth,它们工作正常,但将两者结合使用会出现歧义错误。有没有办法明确告诉它应该使用哪个?
谢谢,
HealthKit 会在您创建对象时为其分配一个 UUID。如果您想添加自己的唯一 ID,请使用 HKMetadataKeyExternalUUID 键将其添加到对象的元数据中。
问题是 CBService 和 HealthKit 都有 UUID 属性。当你调用 peripheral.services
时,它 returns 是一个 AnyObject
数组。所以解决这个问题类型转换为 CBService
.
for service in peripheral.services as [CBService]
{
}