Ответ 1
Короткий ответ: вам нужно сохранить периферийное устройство.
Длительное объяснение: Core Bluetooth не знает, интересуетесь ли вы этим периферийным устройством, когда оно обнаружено. Недостаточно подключения к нему, вам нужно его сохранить.
Добавьте свойство к классу, в котором вы делаете все это:
@property (strong) CBPeripheral *connectingPeripheral;
И затем назначьте это периферийное свойство, когда устройство будет обнаружено, прежде чем вы вернетесь из didDiscoverPeripheral
:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
DDLogVerbose(@"Discovered peripheral: %@ advertisement %@ RSSI: %@", [peripheral description], [advertisementData description], [RSSI description]);
[central connectPeripheral:peripheral options:nil];
self.connectingPeripheral = peripheral;
}