Swift 错误:";无法调用初始值设定项";对于仅在Watch OS上执行的功能

Swift 错误:";无法调用初始值设定项";对于仅在Watch OS上执行的功能,swift,watchkit,init,Swift,Watchkit,Init,我在我的“HealthKitService”中声明了一个可失败的初始值设定项,顾名思义,它是HealthKit的一个实用类。问题是某些HealthKit类(如HKWorkoutSession)仅适用于Watch OS,因此我必须使用预处理器指令使函数仅适用于Watch OS: #if TARGET_OS_WATCH init?(activity:String) { // Here I initialize my HKWorkoutSession object } #endif 但如果我

我在我的“HealthKitService”中声明了一个可失败的初始值设定项,顾名思义,它是HealthKit的一个实用类。问题是某些HealthKit类(如HKWorkoutSession)仅适用于Watch OS,因此我必须使用预处理器指令使函数仅适用于Watch OS:

#if TARGET_OS_WATCH
init?(activity:String) {
    // Here I initialize my HKWorkoutSession object
}
#endif
但如果我从WatchKit扩展应用程序调用此初始值设定项,则如下所示:

if let service = HealthKitService(activity: activity) {
    // Do something with it
}
我收到这个错误:

无法使用类型为“(活动:字符串)”的参数列表调用类型为“HealthKitService”的初始值设定项

PS:部署目标是Watch OS 3.2,Swift版本:3。

尝试
\if OS(watchOS)
而不是
\if target\u OS\u Watch