2016-09-06 25 views
1

は、複数のwatchOSExtensionsでExtensionDelegateを持ってする方法はありますか? 私の目標は、2.0をwatchosするだけ3.0およびいくつかの他の方法をwatchosするには、いくつかのメソッドを持つことです。拡張委任

毎のXcode 8.6のベータ版、要件は次のとおりです。

  • HKWorkoutConfigurationのみ利用可能でwatchOS 3.0
  • 機能ハンドルwatchOS 2.2.0
  • を開始利用可能です

エラー:

議定書WKExtensionDelegate」はwatchOSのアプリケーション拡張2.2.0上で利用できるようにする「ハンドル」を必要とし、新しい

import WatchKit 
import HealthKit 

@available(watchOSApplicationExtension 2.2.0, *) 
class ExtensionDelegate: NSObject, WKExtensionDelegate { 


}//eoc 


@available(watchOSApplicationExtension 3.0, *) 
extension ExtensionDelegate 
{ 
    @objc(handleWorkoutConfiguration:) 
    func handle(_ workoutConfiguration: HKWorkoutConfiguration) { 

    } 
} 

答えて

0

エラーを与えていたとき、Xcodeのベータ版は、脳の凍結を持っていたようです。 Xcodeベータ版を終了してもう一度開いてみてください。私は以下のコードを更新し、それは正常に実行されます。 watchOS 3.0 GM種子で

import WatchKit 
import HealthKit 

class ExtensionDelegate: NSObject, WKExtensionDelegate { 

    func applicationDidFinishLaunching() { 
     // Perform any final initialization of your application. 

    } 

    func applicationDidBecomeActive() { 
     // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
    } 

    func applicationWillResignActive() { 
     // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 
     // Use this method to pause ongoing tasks, disable timers, etc. 
    } 

    @available(watchOSApplicationExtension 3.0, *) 
    func handle(workoutConfiguration: HKWorkoutConfiguration) 
    { 

    }//eom 

}//eoc 
+0

;(明らかに一時的な修正。私はAppleが最終リリースでのヘッダにこれを追加すると推定)、私はこの問題を回避することはできません。 watchOS 2.2で "handle"メソッドを実装する必要がありますが、そのメソッドへのHKWorkoutConfiguration引数は、watchOS 3.0でのみ使用できます。 – sjmerel

0

、私は見つけることができる唯一の回避策はWK_AVAILABLE_WATCHOS_ONLY(3.0)を追加することです。 WKExtensionDelegateヘッダーファイルのhandle(_ :)メソッドの宣言に追加します。 Xcodeの8 GM種子を使用して

+0

あなたはこれを追加した例 'ExtensionDelegate' Objective-Cのファイルを投稿していただけませんか?私は構文に精通していないだけでなく、あなたが示唆していることをやり遂げる方法です。ありがとう!残念ながら、 ' それは、(HKWorkoutConfiguration *)workoutConfiguration WK_AVAILABLE_WATCHOS_ONLY(3.0):(空)handleWorkoutConfiguration - に' ';(HKWorkoutConfiguration *)workoutConfiguration:(空)handleWorkoutConfiguration - WKExtension.h、 からの変更51行を'で –

+0

これは最新のリリースで修正されていないようです... – sjmerel

+0

ああ、あなたはリンゴのソースコードを編集することを意味しますか?それが可能であることを認識していませんでした。それはバンドルされ、どこかでコンパイルされたと考えられます。 –