Гарантируются ли сообщения `setHidden` для`WKInterfaceObject` в порядке?
Если я позвоню:
someButton.setHidden(true)
someButton.setHidden(false)
someButton.setHidden(true)
Гарантируется ли, что кнопка теперь будет скрыта?
Я знаю, что в watchOS 1 эти сообщения будут отправляться с iPhone на Watch, но в watchOS 2 он должен работать на том же устройстве - но, учитывая, что нет способа проверить, скрыт ли объект, у меня есть сомнения относительно того, что гарантировано.
Спасибо
2 ответа
Кнопка будет скрыта, так как true
последнее значение, которое вступит в силу.
Из ссылки на класс WKInterfaceObject:
WatchKit объединяет данные от всех вызовов метода сеттера, сделанных во время одной итерации цикла выполнения, и передает их на устройство в конце цикла выполнения. Если в одной итерации цикла выполнения для атрибута заданы разные значения, передается только последнее значение.
Кнопка никогда не будет скрыта, показана, затем снова скрыта, поскольку предыдущие сообщения не применяются циклом выполнения. Только последнее из этих сообщений имеет какой-либо эффект, и только одно обновление выполняется для кнопки.
Возможно, вы также захотите посмотреть в этой статье Руководство по переходу на watchOS 2 относительно изменений для watchOS 2, поскольку расширение теперь запускается на Watch. Я не уверен, что ему нужно будет ждать завершения цикла выполнения.
В watchOS 2 не только расширение WatchKit запускается на Apple Watch пользователя, оно поставляется внутри приложения Watch пользователя. Такое расположение облегчает приложению Watch доступ к ресурсам, хранящимся в комплекте расширения WatchKit.