コンプリケーションをサポートするテスト アプリを作成します
何らかの理由で、時計の文字盤は 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「制限」パラメーターについて知っていますが、常に配列の数よりも大きくなります
PPS私の英語でごめんなさい:)