В 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)
}

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

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


person Kruperfone    schedule 05.10.2015    source источник


Ответы (1)


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

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

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

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

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

person Community    schedule 02.12.2015