ClockKit CLKComplicationDataSource отсутствует обратные события

Я пишу тестовое приложение с поддержкой осложнений

По какой-то причине циферблаты представляют только 1-2 отсталых события, но я могу видеть в журналах за 10-15 событий до текущей даты. И когда я возвращаю пустой массив для событий вперед, все мои события назад начинают показываться на циферблате.

Вот моя функция

func getTimelineEntriesForComplication(complication: CLKComplication, beforeDate date: NSDate, limit: Int, withHandler handler: (([CLKComplicationTimelineEntry]?) -> Void)) {

    var entries: [CLKComplicationTimelineEntry] = []

    let events = self.events.filter { (event: CEEvent) -> Bool in
        return date.compare(event.startDate) == .OrderedDescending
    }

    var lastDate = date.midnightDate

    for event in events {
        let entry = CLKComplicationTimelineEntry(date: lastDate, complicationTemplate: event.getComplicationTemplate(complication.family))

        if let endDate = event.endDate {
            lastDate = endDate
        } else {
            lastDate = event.startDate
        }

        entries.append(entry)

        if entries.count >= limit {
            break
        }
    }

    handler(entries)
}

PS Я знаю о параметре limit, и он всегда больше, чем количество в моем массиве

PPS Извините за мой английский:)

1 ответ

Решение

Я видел такое же поведение для watchOS 2.0.1, где перемещение во времени назад первоначально показывает только две более ранние записи, хотя источник данных запросил и вернул 100 записей.

Примерно через 15 минут после запуска появилось больше записей для путешествия назад во времени. Примерно через 30 минут после запуска присутствовали все 100 предыдущих записей.

Это было не из-за какого-либо обновления, которое я запланировал, так как интервал обновления моей сложности составляет 24 часа.

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

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

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