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];