当我使用以下方法禁用重复密钥过滤时:
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
构建和运行正常(并捕获所有广告包)但它总是首先产生此错误:
“CoreBluetooth [警告]禁用重复过滤,但正在使用默认队列(主线程)进行委托事件”
如果我添加,我可以停止显示警告:
dispatch_queue_t centralQueue = dispatch_queue_create("central", DISPATCH_QUEUE_SERIAL);
在我创建CBCentralManager实例并将队列参数设置为centralQueue之前。这是解决此问题的正确方法吗?或者有更好的方法吗?
由于
答案 0 :(得分:2)
这样有一个正确的答案:
如果将CBCentralManager设置为在主队列上运行,则将扫描选项设置为允许重复可能会降低整体性能。如果需要允许重复,最好在单独的队列上运行CBCentralManager。
dispatch_queue_t centralQueue = dispatch_queue_create("mycentralqueue", DISPATCH_QUEUE_SERIAL);
_centralManager = [[CBCentralManager alloc]initWithDelegate:self queue:centralQueue];