Получить временную запись и шаблон, используемые для активного усложнения?

Я хотел бы условно перезагрузить мое активное усложнение в функции requestedUpdateDidBegin или фактически указать ClockKit установить следующую проверку за 15 минут до окончания текущей записи временной шкалы, но как я могу это сделать, не зная, что находится в текущем усложнении?

Вот что я пытаюсь сделать:

    if let complications = CLKComplicationServer.sharedInstance().activeComplications {
        for item in complications {
            // Get timeline entry and template used?
        }
    }

Для текущей сложности я могу получить только семью, но никакой другой информации, такой как дата временной шкалы или используемый шаблон. Есть ли способ получить это?


person TruMan1    schedule 24.03.2016    source источник
comment
Я пытаюсь обновить кольцо для текущего осложнения. Так что на самом деле я хотел бы получить текущую запись временной шкалы и обновить ее за 15 минут до истечения срока ее действия. В противном случае кольцо довольно быстро устаревает и может обновлять его только каждые 30 минут. Было бы неплохо, если бы я мог заполнить фракцию заполнения, например, относительной датой. Мое усложнение похоже на таймер, отображаемый в виде кольца.   -  person TruMan1    schedule 24.03.2016
comment
К сожалению, нет поддержки относительной доли заполнения. Запросите функцию. Но если вы предоставляете только getCurrentTimelineEntryForComplication, вы можете (используйте минимальное 10-минутное запланированное обновление интервал, чтобы сохранить его несколько свежим, или) запланировать обновление, как объяснено в ответе, сместив текущую дату записи.   -  person    schedule 24.03.2016
comment
Спасибо за объяснения и подход, текущая функция временной шкалы будет работать, как вы упомянули. Тем временем я заполнил запрос функции.   -  person TruMan1    schedule 24.03.2016


Ответы (1)


Сервер усложнений запрашивает данные у вашего контроллера усложнений , но он не предназначен для предоставления вам данных своей временной шкалы. Все, что вы можете узнать из сервера, — это самые ранние и поздние даты путешествий во времени.

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

Что касается планирования обновления за 15 минут до окончания последней записи, вы можете очень легко запланировать это как часть предыдущего запроса на перезагрузку. Самое последнее, что запрашивает сервер сложности (после перезагрузки или продления временной шкалы), — это дата следующего обновления.

Поскольку сервер усложнений только что запросил у вас будущие записи временной шкалы в getTimelineEntriesForComplication:afterDate:, вы можете записать дату последней временной записи, сместить ее на 15 минут, а затем вернуть эту новую дату, как только getNextRequestedUpdateDateWithHandler на мгновение будет вызвано.

person Community    schedule 24.03.2016