3

使えない

UIApplication.sharedApplication().beginIgnoringInteractionEvents()

WatchKit 拡張機能で、エラーが発生しました:

'sharedApplication()' is unavailable: Use view controller based solutions where appropriate instead.

代替手段はありますか?

4

1 に答える 1

3

短い答えは次のとおりです。いいえ、ありません。

長い答え:

拡張機能は時計ではなく、携帯電話で実行されることに注意してください。したがってUIApplication.sharedApplication()、電話をかけると、とにかく、電話で内線番号のアプリケーションが返されます! 拡張機能内で行うことはすべて、電話の拡張機能を操作することです。唯一の例外は、WatchKit メソッドです。そして、それらは基本的に呼び出しであり、Bluetooth 経由で送信されて時計に何をすべきかを伝える命令に変換されます。時計で実行するコードを書くことは決してできません!

あなたが送信した指示を時計がどうするかについて、あなたはまったく制御できません。基本的に、クライアントと通信するサーバーとして機能しており、クライアントを制御することはできません。送信する指示はできるだけ少なくする必要があります。送信したら、タスクは完了し、残りは時計次第です。

そうは言っても、イベント配信を操作する呼び出しが不要になるように UI を慎重に計画する必要があります。シンプルな「ユーザーが x をタップしたら、私は y をタップします」というインタラクションに焦点を当てる必要があります。

心に留めておくべきもう 1 つの点は、拡張機能がメインの iOS アプリと通信できないことです。iOS アプリとウォッチ拡張機能の間で共有アプリ グループを作成して、それらの間でデータを共有できますが、アプリと直接通信することはできません。アプリのロジックの一部を使用する場合は、問題のモジュールをフレームワークに抽出し (これは Xcode 6 で非常に簡単になりました)、そのフレームワークをアプリと拡張機能の両方で使用します。

于 2014-11-30T10:36:31.230 に答える