Es gibt schöne @ available Attribut in Swift, um die Verfügbarkeit in der Kompilierzeit zu testen. Zum Beispiel HKQuantityTypeIdentifierAppleExerciseTime Kennung ist nur verfügbar, da iOS 9.3, also, wenn wir es verwenden wollen, müssen wir die Verfügbarkeit wie folgt überprüfen:Swift Kompilierzeit Verfügbarkeit: nicht verfügbar Fall
@available(iOS 9.3, *)
public static let supportedTypes = [
HKQuantityTypeIdentifierActiveEnergyBurned,
HKQuantityTypeIdentifierAppleExerciseTime
]
aber ist es möglich, auch hier hinzufügen, wenn Bezeichner nicht verfügbar ist? Um gleiche Konstante in iOS < 9.3 als zu definieren:
// iOS < 9.3 case:
public static let supportedTypes = [
HKQuantityTypeIdentifierActiveEnergyBurned
]
kompiliert mit Fehler: Konklusion Rückgabetyp im aktuellen Kontext kann nicht – Vladimir
Yeah entschuldigen, das war von der Spitze meines Kopfes und ich habe vergessen, explizit den Let-Typ angeben (die, wie der Compiler beschwert, kann ' t aus dem Zusammenhang abgeleitet werden). Ich habe meine Antwort mit einem ': [String]' aktualisiert - zögern Sie nicht, es jetzt erneut zu versuchen. –