2017-08-04 1 views
0

Ich versuche zu verstehen, welcher der beste Weg ist, um die Verbindung über View-Controller zu erhalten.iOS beste Möglichkeit, Verbindung zu einem BLE-Peripheriegerät zu verbinden und aufrechtzuerhalten

Derzeit habe ich eine NSObject-Klasse, die CBCentralManagerDelegate und CBPeripheralDelegate-Methoden implementiert.

Ich habe eine andere Klasse, BLEManager, die ein Singleton verwendet, um eine Instanz der CBCentralManager-Klasse und eine NStream-Klasse zu erstellen, die mit dem Peripheriegerät kommuniziert.

Beim Scannen nach Peripheriegeräten und beim Herstellen von Verbindungen zu diesen Geräten treten Fehler auf. Bei der Suche nach falschen Geräten mit den gleichen Dienst-UUIDs versucht die App, eine Verbindung herzustellen und benachrichtigt den Benutzer. Wenn ich versuche, es erneut zu finden und zu verbinden, versucht es einfach, die Verbindung mit demselben Gerät wiederherzustellen.

Könnte das an der Art und Weise liegen, wie ich mein Singleton eingerichtet habe?

Wäre es auch besser, meine NSObject-Klasse stattdessen zu einem Singleton zu machen, anstatt den BLEManager-Singleton zu verwenden?

+0

Woher wissen Sie, mit welchem ​​Gerät Sie eine Verbindung herstellen möchten? Sobald Sie die Kennung haben, brauchen Sie nicht mehr zu scannen, Sie können sich einfach verbinden. – Paulw11

Antwort

0

Können wir einen Code sehen ?? Vielleicht können wir Ihnen mit Code besser helfen. Aber ich denke, es ist kein Singleton-Problem, sondern ein NSObject-Problem. Überprüfen Sie, ob Sie nur eine Instanz dieses Objekts haben. Wenn das Objekt den BLE-Delegaten implementiert und Sie viele Instanzen davon haben, wird Ihre Anwendung die Delegate-Methoden so oft eingeben, wie Sie Instanzen haben.

Könnte es das Problem sein?

Verwandte Themen