CoreBluetooth: Wie entwerfe ich Code für viele Merkmale (30 - 40)?

Ich habe ein bisschen gesucht und habe dies als mögliche doppelte Frage gefunden:

Mehrere CBPeripherals für dasselbe Gerät

Mein Problem ist:

ich habemehrere Dienste die alle zusammen haben über30-40 Eigenschaften (Ja, ich brauche alle ...). Als Ausgangspunkt für den Umgang mit CoreBluetooth habe ich immer den Apple Sample Code (CoreBluetooth Temperatursensor).

Der Umgang mit Erkennungs- und Service- / Merkmalen ist in zwei Klassen unterteilt, und dies funktioniert nur für einige wenige Merkmale. Aber mit dieser Fülle von Merkmalen in einer Klasse umzugehen ist nicht das, was ich darunter verstehe"gutes Software-Design".

Die erste Idee, die einem einfällt, ist, für jeden Dienst eine Klasse zu erstellen. Aber leider aCBPeripheral kann einfach eins habenCBPeripheralDelegate zur selben Zeit. Das heißt, ich kann es nicht in mehrere Klassen aufteilen.

(Wir müssen nicht mit der Diskussion beginnen, wenn BLE die richtige Technologie ist, um diese Datenmenge zu erhalten - das ist es nicht. Aber es gibt Hersteller, die BLE verwenden, damit sie sich nicht mit dem MFi-Programm herumschlagen müssen ...)

Ich habe auch die endlich zur Verfügung gestelltCoreBluetooth-Programmierhandbuch Aber es werden nur grundlegende Arbeitsabläufe beschrieben - nichts über das richtige Design.

Ich suche einen netten Designansatz. Sie haben möglicherweise Vorschläge, Hinweise oder Links zu Beispielcode? Vielen Dank im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage