WKInterfacePicker setValue和pickerAction无限循环

时间:2016-08-23 03:17:50

标签: ios watchkit watch-os-2 watchconnectivity wcsession

主应用程序发送要监视的数据,并使用以下方式监视设置选择器索引:

[picker setSelectedItemIndex:val];

反过来,这将启动挑选者行动。然而,我的选择器操作会将数据发送到手机(使用sendMessage),然后又回复观看......这种情况会持续下去。

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

1 个答案:

答案 0 :(得分:0)

您不想删除该操作。相反,您可以选择一些选项来简单地停止循环:

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

    如果手表说“选择器索引是3”,并且手机回复说,“Roger,选择器设置为3,”为什么你希望你的手表代码根据响应设置选择器对手表最初发送的东西?这似乎是问题的关键,也是最佳解决方案。

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

  • 当选择器的值已经与选择器当前选择的索引匹配时,不设置(或发送)选择器的值。

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

  • 使用其他WCSession方法(例如updateApplicationContext),该方法在与最新applicationContext匹配时不会重新发送数据。