CoreBluetooth - Отключение фильтра повторяющихся ключей вызывает предупреждение

Когда я отключаю дублирование ключа с помощью:

NSDictionary *options    = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];

Сборка и запуск работает нормально (и захватывает все рекламные пакеты), но всегда сначала выдает эту ошибку:

"CoreBluetooth [WARNING] отключает дублирующую фильтрацию, но использует очередь по умолчанию (основной поток) для делегирования событий"

Я могу остановить отображение предупреждения, если добавлю:

dispatch_queue_t centralQueue = dispatch_queue_create("central", DISPATCH_QUEUE_SERIAL);

прямо перед тем, как я создаю экземпляр CBCentralManager и устанавливаю для аргумента очереди значение CentralQueue. Это правильный способ решить эту проблему? Или есть лучший способ?

Спасибо

1 ответ

Решение

Просто так есть правильный ответ:

Установка параметров сканирования для разрешения дубликатов может снизить общую производительность, если CBCentralManager настроен для запуска в главной очереди. Лучше всего запускать CBCentralManager в отдельной очереди, если вам нужно разрешить дубликаты.

dispatch_queue_t centralQueue = dispatch_queue_create("mycentralqueue", DISPATCH_QUEUE_SERIAL);
_centralManager = [[CBCentralManager alloc]initWithDelegate:self queue:centralQueue];
Другие вопросы по тегам