Ich schreibe ein Cordova-Plugin für HealthKit und meine Aufgabe ist es, sicherzustellen, dass wir mehr oder weniger dynamisch Daten von HK lesen können. Ich mache den nativen Teil in swift. Aber ich schreibe meistens JavaScript, daher bin ich mit dem Swift-Teil etwas verloren.Wie kann ich eine Klassenmethode in Swift aufrufen, wenn ich nur die Zeichenfolge habe?
Ich möchte in der Lage sein, Methoden mit nur einer Zeichenfolge dynamisch aufzurufen.
let store = HKHealthStore()
do {
let bloodType: HKBloodTypeObject = try store.bloodType()
...
Das ist ein Beispiel, Blutgruppe zu lesen. Ich bin kein Swift Entwickler, aber ist es eine Möglichkeit, diese dynamisch zu tun, wie ich in Javascript tun würde:
... // assuming this function receives a string as paramater
let param[0] = try store[param[0]]() // <-- how to do this in Swift?
dann kann ich an einen Server sprechen und eine Liste der Eigenschaften erhalten und laden sie dynamisch aus Healthkit, ohne meinen Code und Hardcode für jedes mögliche Merkmal aktualisieren zu müssen.
Gibt es etwas, das ich Sie hartzucodieren updateBlood hier nicht verstehen, oder am Ende auch(), spinAround(), etc? – Elemenofi
Ich meine ... Sie müssen die Methode irgendwann fest codieren. So wissen Sie, welche Methode Sie anrufen sollen. Dies führt jedoch nur eine Zuordnung zwischen Strings und Funktionen ein. – sdasdadas
ich verstehe, aber dann bin ich in dem gleichen Problem. die Sache ist, dass wie Apple HKHealthStore erweitert ich möchte in der Lage sein, neue Eigenschaften dynamisch zu lesen, ohne das Plugin zu ändern ... so muss ich in der Lage zu tun HKHealthStore ['somethingNew']() – Elemenofi