Ответ 1
Вы должны сначала подождать, пока centralManager не получит обратный вызов из centralManagerDidUpdateState:
, когда вы загружаете приложение. Затем каждый раз я рекомендую проверять состояние перед выполнением вызовов centralManager. Вы, скорее всего, вызываете сканирование или извлечение, прежде чем центральный сможет обновить. Убедитесь, что вы только вызываете методы после того, как знаете это. Вы не получите ошибку, если вы завершите каждый вызов, если операторы, которые сначала проверяют состояние.
- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
if(central.state==CBCentralManagerStatePoweredOn)
{
//Now do your scanning and retrievals
}
}
В противном случае просто сверните центральную часть внутри проверки состояния перед каждым вызовом:
if(yourCentral.state==CBCentralManagerStatePoweredOn)
{
//you're good to go on calling centralManager methods
}