2017-05-22 31 views
0

現在、私のコードは機能しません。私はまだ手動でそれを更新する必要があります。 12時間ごとに自動的に更新したいと思っています。Apple Watchの合併症を自動的に更新するには?

func getTimelineStartDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { 

    let date = Calendar.current.startOfDay(for: Date()) 
    print("timeline start date :\(date)") 
    handler(date) 
} 

func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { 
    var date = Calendar.current.startOfDay(for: Date()) 
    date = Calendar.current.date(byAdding: .day, value: 2, to: date)! 
    print("timeline end date:\(date)") 
    handler(date) 
} 

func getNextRequestedUpdateDate(handler: @escaping (Date?) -> Void){ 
    handler(Date(timeIntervalSinceNow: 60*60*12)) 


} 

答えて

0

を参照してください。リフレッシュのために実装する必要があります。スケジュールされた更新の開始時に

、ClockKitは があなたの合併症のタイムバジェットの状態に応じて、 requestedUpdateDidBeginまたはrequestedUpdateBudgetExhaustedの方法のいずれかを呼び出します。 タイムラインにデータを追加する場合は、 のいずれかまたは両方のメソッドを実装する必要があります。これらのメソッドを実装するには、必要に応じて の複雑さのタイムラインを延長または再ロードする必要があります。これを行うと、 ClockKitはデータソースから新しいタイムラインエントリを要求します。 タイムラインを延長または再ロードしない場合、ClockKitは に新しいタイムラインエントリを要求しません。

func requestedUpdateDidBegin() { 
    let server=CLKComplicationServer.sharedInstance() 
    for complication in server.activeComplications { 
     server.reloadTimelineForComplication(complication) 
    } 
} 

詳細についてはthisを確認してください。

0

以下の機能を使用して、データを入力することができます。

func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { 
    // Call the handler with the current timeline entry 
    handler(nil) 
} 

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

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 
    handler(nil) 
} 

は、データ・ソース・メソッドが実装されていないようですApp Programming Guide for watchOS

関連する問題