0

主应用程序将数据发送到手表,手表通过使用以下方式设置选择器索引:

[picker setSelectedItemIndex:val];

反过来,这将启动选择器操作。但是,我的选择器操作将数据发送到手机(使用sendMessage),手机又回复观看......并且永远持续下去。

如何取消选择器操作setSelectedItemIndex:?WKInterfacePicker 没有removeTarget:方法。

4

1 回答 1

0

您不想删除该操作。相反,您有几个选项可供选择,以通过以下方式简单地阻止循环发生:

  • 仅在收到初始消息时设置选择器的值,而不是在收到响应时设置。

    如果手表显示“选择器索引为 3”,而手机回复“Roger,选择器设置为 3”,您为什么希望您的手表代码根据对手表最初发送的内容的响应来设置选择器? 这似乎是问题的症结所在,并且将是最佳解决方案。

    如有必要,为响应使用不同的密钥,以帮助任何共享代码区分消息类型。

  • Not setting (or sending) the picker's value, when it already matches the picker's current selected index.

    您必须维护一个属性来跟踪当前值,因为选择器的属性是只写的并且无法读取。

  • 使用不同的WCSession方法(例如updateApplicationContext),该方法设计为在匹配最新的数据时不重新发送数据applicationContext

于 2016-08-23T03:57:19.643 回答