2014-01-06 3 views
4

Я использую CoreBluetooth, но я получил это предупреждение в выводе.CoreBluetooth [WARNING] не имеет идентификатора восстановления, но делегат реализует

CoreBluetooth [WARNING] не имеет идентификатора восстановления, но делегат реализует метод centralManager: willRestoreState:. Восстановление не поддерживается!

Я использую этот код:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], CBCentralManagerOptionShowPowerAlertKey, nil]; 

myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options]; 

Я не знаю, что это неправильно.

Спасибо.

+0

Вы хотите использовать функцию сохранения/восстановления CoreBluetooth, или нет? см. раздел «Включение в состояние сохранения и восстановления» в https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html – foggzilla

ответ

6

Это относится к дополнительной функции сохранения/восстановления CoreBluetooth, см. Раздел «Ввод в состояние сохранения и восстановления состояния» части documentation для более подробной информации.

Что будет происходить, так это то, что вы используете правильный метод делегирования для использования этой функции, но вы не предоставляете идентификатор восстановления в своем вызове для инициализации CBCentralManager.

Есть два варианта решения предупреждение:

  1. Если вы хотите использовать эту функцию, вы должны предоставить идентификатор для CBCentralManager как так:

    myCentralManager = [[CBCentralManager Alloc] initWithDelegate : self queue: nil options: @ {CBCentralManagerOptionRestoreIdentifierKey: @ "myCentralManagerIdentifier"}];

  2. Если вы не хотите использовать эту функцию, удалите из своего делегата метод centralManager:willRestoreState:.

Выполнение любого из этих действий должно быть разрешено для предупреждения.

Смежные вопросы