使用以下代码重新发布我的蓝牙服务,我间歇性地发现了以下错误消息。
self.stopAdvertising()
peripheralManager.removeAllServices()
if let service = self.cbService {
NSThread.sleepForTimeInterval(0.1)
peripheralManager.addService(service)
self.startAdvertising()
}
2016-06-03 09:32:10.262 BottleSimulator [180:3587] *断言失败 - [CBPeripheralManager addService:],/ SourceCache / CoreBluetooth / CoreBluetooth-256 / CBPeripheralManager.m:307 2016-06-03 09:32:10.270 BottleSimulator [180:3587] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'服务不能多次添加'
为什么我会这样?我认为拨打removeAllServices()
可以防止这种情况发生。我甚至为测试添加了一个睡眠,但它并没有阻止间歇性的崩溃。
是否有更可靠的方式重新发布服务?