Ich habe in meinem 'HealthKitService' einen fehlgeleiteten Initialisierer deklariert, der, wie der Name schon sagt, eine Dienstprogrammklasse für HealthKit ist. Das Problem ist, dass bestimmte HealthKit Klassen wie HKWorkoutSession, nur für Watch O zur Verfügung stehen, so hatte ich eine Präprozessordirektive verwenden, um eine Funktion für Video-OS machen nur:Fehler: "Initialisierer kann nicht aufgerufen werden" für Funktion, die nur auf Watch OS ausgeführt werden soll
#if TARGET_OS_WATCH
init?(activity:String) {
// Here I initialize my HKWorkoutSession object
}
#endif
Aber wenn ich nenne die initializer von der WatchKit Erweiterung App, auf diese Weise:
if let service = HealthKitService(activity: activity) {
// Do something with it
}
erhalte ich diesen Fehler:
Cannot invoke initializer for type 'HealthKitService' with an argument list of type '(activity: String)'
PS: Das Implementierungsziel ist Watch OS 3.2, Swift-Version: 3.