2016-09-21 10 views
0

didFinishLaunchingWithOptionsのAppDelegateで私は 時計をアプリケーションに接続します。Apple Watch Unpaired ActivateSession slow

if ([WCSession isSupported]) { 
    WCSession *session = [WCSession defaultSession]; 
    session.delegate = self; 
    [session activateSession]; 
} 

ほとんどの場合、これは問題なく動作します。しかし、ユーザーが時計 とペアになっていて時計のペア設定を解除した場合、 [session activateSession]に遅延が発生しています。この コールが実行されるには、約7〜8秒かかります。これは、アプリケーションの起動に大きな遅延を引き起こしています。

私はこれがアップルのバグだと思っていますが、私は短い予告でこれを修正するためにアップルを調べません。

回避策として、activateSessionの前に、時計がペアになっているかどうかを確認したいと考えています。ただし、 'セッション'には有効なデータが含まれていません。 'session activateSession' 文の前に、時計がペアになっているかどうかを確認するにはどうすればよいですか?

これは、iOS9.3とiOS10.0.1の両方で発生します。他のバージョンはテストしていません。

答えて

1

これは確かにバグのようです。回避策として、あなたは可能性のいずれか:

+0

を実装することにより、watchOS 2.2のiOS 9.3でWCSessionのために追加され、それAppDelegateでアクティブ化を実行することを強くお勧めします。そのため、最初の回避策は不可能です。 – Vincent

+0

2番目の回避策は完全に機能します。メソッドsession:activationDidCompleteWithActivationState:error:(コンテンツは必要ありません)を含めてください。ありがとう! – Vincent

関連する問題