2017-02-09 13 views
0

Watch app complication에서 TimeTravel을 지원하려고합니다. 이 코드를 고려하십시오.CLKComplicationDataSource : 수백 번 호출 된 getTimelineEntries 대리자

내가 응용 프로그램을 죽일 때까지 왜 이러한 위임 메서드가 반복적으로 호출되는지 이해할 수 없습니다.

OS가 이러한 메소드를 호출해야하기 때문에 내가 뭘 잘못하고 있을지 궁금해. WatchOS 버그일까요?

func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([ CLKComplicationTimelineEntry]?) -> Void) { 
    // Call the handler with the timeline entries after to the given date 

    let interval = stride(from:0.0, through:60, by: 10.0) 

    var entries: [CLKComplicationTimelineEntry]? = nil 

    switch complication.family { 

    case .circularSmall: 
     entries = interval.flatMap({ minutes in 
      entryForCircularSmall(date: date.addingTimeInterval(60.0 * minutes)) 
     }) 
     handler(entries) 

    case .utilitarianLarge: 
     entries = interval.flatMap({ minutes in 
      entryForUtilitarianLarge(date: date.addingTimeInterval(60.0 * minutes)) 
     }) 

     handler(entries) 

    default: 
     handler(nil) 
    } 

    print("future timelineEntries limit: \(limit), date: \(date), entries: \(entries?.count)") 
} 

func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { 
    let date = Date().addingTimeInterval(60.0 * Double(240)) 
    print("timeline end: \(date)") 
    handler(date) 
} 
콘솔 로그에서

작은 발췌

:이 시점에서, 내가 응용 프로그램을 죽일

timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:32:59 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:09 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:09 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000 
future timelineEntries limit: 100, date: 2017-02-09 23:33:10 +0000, entries: Optional(7) 
timeline end: 2017-02-10 03:33:10 +0000  

... 그것이 나오는 것에 따라

답변

0

, 대리인이 있기 때문에, 너무 많은 시간을 불렀다 같은 날짜에 타임 라인 항목을 계속 제공합니다.

CLKComplicationTimelineEntry 객체를 생성하는 코드에 버그가 있습니다 (여기에 표시되지 않음). 위임자가 제공 한 날짜를 사용하는 대신 Date() (getCurrentTimelineEntry 메서드 구현에서 명백히 복사 붙여 넣기)에 대한 호출을 사용하고있었습니다.

그러나 WatchOS가 대표자를 수천 번으로 부르는 것이 인상적이었습니다.