2017-09-03 1 views
0

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.

Antwort

1

Versuchen Sie #if os(watchOS) anstelle von #if TARGET_OS_WATCH.

Verwandte Themen