0

メインアプリがウォッチにデータを送信し、ウォッチは以下を使用してピッカー インデックスを設定します。

[picker setSelectedItemIndex:val];

これにより、ピッカー アクションが起動します。ただし、私のピッカーアクションは電話にデータを送信し(を使用sendMessage)、電話は時計に返信します...そしてそれは永遠に続きます。

のピッカー アクションをキャンセルするにはどうすればよいsetSelectedItemIndex:ですか? WKInterfacePicker にはメソッドがありませんremoveTarget:

4

1 に答える 1

0

アクションを削除したくありません。代わりに、次の方法でサイクルの発生を単純に停止するために選択できるいくつかのオプションがあります。

  • 応答が受信されたときではなく、最初のメッセージが受信されたときにのみピッカーの値を設定します。

    ウォッチが「ピッカー インデックスは 3 です」と言い、電話が「ロジャー、ピッカーは 3 に設定されました」と応答する場合、ウォッチが最初に送信したものへの応答に基づいて、ウォッチ コードでピッカーを設定する必要があるのはなぜですか。 ? これが問題の核心であり、最適な解決策であるようです。

    必要に応じて、応答に別のキーを使用して、共有コードがメッセージの種類を区別できるようにします。

  • ピッカーの現在選択されているインデックスと既に一致している場合、ピッカーの値を設定 (または送信) しません。

    ピッカーのプロパティは書き込み専用で読み取ることができないため、現在の値を追跡するためにプロパティを維持する必要があります。

  • 最新WCSessionの. _updateApplicationContextapplicationContext

于 2016-08-23T03:57:19.643 に答える