我正在尝试使用CoreBluetooth从我的iOS应用程序获取通知到我的Mac应用程序,但我在中央端peripheral:didUpdateNotificationStateForCharacteristic:
方法中收到此错误:Error Domain=CBErrorDomain Code=1 "One or more parameters were invalid." UserInfo={NSLocalizedDescription=One or more parameters were invalid.}
。
外围应用程序使用Notify属性和阅读权限初始化onlineUUID特征。
func peripheral(peripheral: CBPeripheral, didDiscoverCharacteristicsForService service: CBService, error: NSError?) {
for characteristic in service.characteristics! {
if characteristic.UUID.isEqual(self.onlineUUID) {
print("Found online characteristic") // this prints
print("Properties are \(characteristic.properties.rawValue)") // 16==Notify
peripheral.setNotifyValue(true, forCharacteristic: characteristic)
}
}
}
这看起来像在线教程,但它不起作用。我重新启动了两个应用程序,清理了项目并重新启动了Xcode。在iOS 9.2和OS X 10.11.2上使用Xcode 7.2和Swift 2.1.1。相当困惑;请帮忙。
答案 0 :(得分:0)
如果您只是在函数中添加一个self,我认为您的问题可以解决:
self.sensorPeripheral.setNotifyValue(true, forCharacteristic: thisCharacteristic)
答案 1 :(得分:0)
为每个人的时间道歉;当我在外围设备上重新启动蓝牙时,这个确切的代码工作。它正在注册特性,但是setNotifyValue()导致了这个异常的错误消息,直到我重新启动蓝牙。
我发现代码的工作方式是交换哪个设备是外设,哪个是中心设备。