我需要存储由主Watch应用程序(和iPhone应用程序)控制并以复杂方式显示的数据。
如果您需要获取或计算并发症数据,请执行此操作 在您的iOS应用或WatchKit扩展的其他部分(针对 例如,通过安排后台应用刷新任务),并缓存 放置在您的并发症数据源可以访问的位置。
当他们告诉您将数据缓存在并发症可以访问的地方时,他们有什么想法?实现此目标的最佳实践/标准方法是什么?
答案 0 :(得分:0)
您可以在UserDefaults中存储一些数据,然后从并发症数据源访问这些数据。
即。
//In a background task
func getComplicationData(){
let yourData = someNetworkCall()
/*
yourData = [
"complicationHeader": "Some string",
"complicationInner": "Some other stirng"
]
*/
UserDefaults.standard.set(yourData, forKey: "complicationData")
}
然后在您的ComplicationDataSource中
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
if let yourData = UserDefaults.standard.dictionary(forKey: "complicationData") as? [String: String] {
//Handle setting up templates for complications
}
}