1

я пишу тест-приложение с осложнениями поддержки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», и он всегда больше, чем у моего массива

P.P.S. Извините, о моем английском :)

ответ

1

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

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

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

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

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