【发布时间】:2015-06-23 14:24:40
【问题描述】:
我正在尝试使用简单(非常类似于 Hello World)OSX 应用程序连接到蓝牙 LE 设备的外围设备。
我正在遵循 Apple 的 Guide Lines ,但是当我尝试连接到外围设备时,我的应用程序无法按预期工作。
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
NSLog(@"Discovered %@", peripheral.name);
if([peripheral.name isEqualToString:@"BLE-DEVICE"]){
NSLog(@"Found BLE Device!");
[_centralManager stopScan];
NSLog(@"Scanning stopped");
peripheral.delegate = self;
[_centralManager connectPeripheral:peripheral options:nil];
}
}
问题是connectPeripheral(最后一行)不会触发委托对象的centralManager:didConnectPeripheral 方法,但是如果我使用简单的断点运行逐步调试,它会触发。
我应该添加一些其他扫描选项吗?如何检查连接是否正确执行?
【问题讨论】:
-
您需要确保保留 CBPeripheral 的本地副本。
-
保留 CBPeripheral 的本地副本使我的应用程序运行良好。我不明白为什么,但它有效!谢谢。
标签: ios macos bluetooth bluetooth-lowenergy core-bluetooth