Услуги не могут быть добавлены более одного раза
Используя следующий код для повторной публикации моей службы Bluetooth, я периодически получаю сбой с сообщением об ошибке ниже.
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()
защитит от этого. Я даже добавил режим сна для тестирования, но это не остановило периодические сбои.
Есть ли более надежный способ переиздания сервиса?