我目前正在使用watchOS应用,正在尝试为其编写动态并发症。
我要实现的是显示存储在核心数据中的变化值。因此,并发症值应相对于该值进行更新。
我曾经尝试观看WWDC视频等,但是一切似乎都太先进了。
这是我的实现的简化形式:
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
let dataString = DataManager.shared.fetchData()
let textProvider = CLKTextProvider(format: dataString)
let template = CLKComplicationTemplateUtilitarianLargeFlat(textProvider: textProvider)
handler(CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template))
}
核心数据部分:
func fetch() -> String {
let request = Item.fetchRequest()
do {
let items = try persistenceController.moc.fetch(request)
return ...
} catch { ... }
}
func update() { //<--- Here I want to call getCurrentTimelineEntry and so update the complication
...
persistenceController.saveContext()
#if os(watchOS) //<--- What I have tried, not working...
let server = CLKComplicationServer.sharedInstance()
server.activeComplications?.forEach(server.reloadTimeline)
#endif
}
谢谢!