Является ли TransferCurrentComplicationUserInfo более подходящим для обновления сложности?

В чем разница между transferCurrentComplicationUserInfo а также transferUserInfo?

Я хочу отправить данные из моего AppDelegate на усложнение набора часов.

transferCurrentComplicationUserInfo кажется, делает то же самое, что и transferCurrentUserInfo, Я что-то пропустил?

2 ответа

Решение

Различие между этими двумя WCSession методы вовлекают, когда данные отправлены, и разбудили расширение watchkit или нет.

transferCurrentComplicationUserInfo: специально разработан для передачи информации о пользователях, которые должны быть показаны на циферблате прямо сейчас.

  • Информация пользователя усложнения помечена как "Срочно" и помещена в начало очереди,
  • часы просыпают расширение в фоновом режиме, чтобы получить информацию, и
  • передача происходит немедленно. (Другая информация из очереди также может быть передана в этот момент.)

transferUserInfo: помещает в очередь информацию, которая будет передана, когда система определит, что самое время обработать очередь:

  • Информация о пользователе размещается в конце очереди,
  • переданная информация сохраняется, если расширение не активировано,
  • передача происходит не сразу, а
  • информация доставляется в том порядке, в котором они были отправлены.

Более подробную информацию можно найти в видео WWDC 2015, посвященном внедрению WatchConnectivity.

Обновление для iOS 10:

В iOS 10 WCSession добавляет remainingComplicationUserInfoTransfers свойство, которое может повлиять на то, какой метод iOS будет использовать для передачи информации о пользователе:

Количество оставшихся звонков transferCurrentComplicationUserInfo: в течение текущего дня. Если это свойство установлено в 0, любые дополнительные вызовы transferCurrentComplicationUserInfo: использование transferUserInfo: вместо.

Если осложнение на активном циферблате, вам дают 50 передач в день. Если сложность не активна, это свойство по умолчанию равно 0.

Насколько мне известно: TransferCurrentComplicationUserInfo имеет те же функциональные возможности, что и TransferCurrentUserInfo при вызове из делегата родительского приложения, однако TransferCurrentComplicationUserInfo также вызывает CLKServer...... и т. Д., Чтобы обновить сложность. Я должен сказать, что считаю оба ненадежными, и я борюсь с TransferCurrentComplicationUserInfo, чтобы обновить мое приложение. Не всегда кажется, что работает. Раздражает то, что он меняется между сборками без изменения кода, что технически не должно быть возможным. Ну что ж...

Другие вопросы по тегам