Является ли 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, чтобы обновить мое приложение. Не всегда кажется, что работает. Раздражает то, что он меняется между сборками без изменения кода, что технически не должно быть возможным. Ну что ж...