我正在尝试编写一个OS X客户端,可以频繁更新蓝牙外设的RSSI值。
我的客户端应用程序正在找我的iPhone设备,我正在运行一个广告蓝牙服务的测试应用程序。客户端应用程序有一个计时器,导致{3}每3秒执行一次。
在OS X上运行时,我没有成功调用didReadRSSI,但是当我在iOS上运行完全相同的Swift代码时,它运行正常。
在iOS 9.3上 - 使用有效的RSSI值按预期调用didReadRSSI。
在OS X 10.11.4上 - 永远不会调用didReadRSSI。
我在iOS和OS X上运行以下完全相同的Swift代码:
Replace(Yourcolumn, '<br>.</br>', '<br></br>')
在iOS上运行时的输出是:
redis> ZADD z 0 one 0 two 0 three 0 four
(integer) 4
redis> ZSCAN z 0 match *o*
1) "0"
2) 1) "four"
2) "0"
3) "one"
4) "0"
5) "two"
6) "0"
在OS X上运行时的输出是:
peripheral.readRSSI()
请注意,在两个平台上返回的外围设备名称不同。我不知道这是否重要。
如何在OS X上调用didReadRSSI?
答案 0 :(得分:1)
OSX使用较旧的样式,将其添加到您的类中以获得预期的行为。
func peripheralDidUpdateRSSI(peripheral: CBPeripheral!, error: NSError!) {
print("peripheralDidUpdateRSSI \(peripheral.name!) = \(peripheral.RSSI)")
}