Je suis le même problème et ont trouvé les étapes pour le reproduire.
Il est 100% reproductible lorsque vous transmettez des données au périphérique avec
[peripheral writeValue:x forCharacteristic:y type:CBCharacteristicWriteWithoutResponse];
tandis que le périphérique est hors de portée et se déconnecte. Après cela, plus aucun service n'est renvoyé par les périphériques BLE, et seul un redémarrage résout le problème. Cela ne se produit pas si le périphérique est hors de portée et revient dans la transmission de données sans lui ou si
[peripheral writeValue:x forCharacteristic:y type:CBCharacteristicWriteWithResponse];
est utilisé ...
D'autres déconnexions ne semblent pas affecter, par exemple comme éteindre le périphérique et le remettre en marche pendant la portée même lors de la transmission de données ...
Je sais que ce n'est pas une réponse, mais il semble que je ne peux pas commenter pour une raison quelconque.
Espérons que cela aide le débogage.
Quelles sont les données stockées? – yuklai
Données stockées par l'iPhone lors de la connexion à un périphérique Bluetooth, car le redémarrage efface du cache/de la mémoire affectant mon application – chwi
Lorsque vous appelez cancelConnection, toutes les données mises en cache doivent être réinitialisées. Voyez-vous quelque chose de différent? – yuklai