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.P.S.對不起,關於我的英語:)

回答

1

我看到了相同的行爲爲watchOS 2.0.1時間旅行倒退最初只顯示兩個較早的條目,即使數據源被要求並返回100個條目。

發佈後約15分鐘,更多條目開始出現在向後的時間旅行中。發佈後約30分鐘,全部100個參賽作品均已出場。

這不是由於我安排的任何更新,因爲我的併發症的更新間隔是24小時。

似乎複合服務器優先考慮添加轉發條目,但推遲使用所有後退時間旅行條目填充緩存。你不得不問蘋果是優化還是錯誤。

我不知道這是否是巧合,但我的時間線條目間隔15分鐘。也許當複雜服務器更新複雜功能以顯示新的時間線條目時,它還會添加更多批次的更早條目?