我需要存储年代由主要看应用程序(和iPhone应用程序)控制和并发症显示的数据。
该official Apple documentation说
如果您需要在您的iOS应用或在您的WatchKit延伸的其他部分(例如,通过调度后台程序刷新任务)在一个地方,你的并发症获取或计算您的复杂数据,这样做,并缓存数据数据源可以访问它。
他们有什么记住,当他们告诉你缓存在并发症可以访问它的地方的数据?什么是实现这一目标的最佳实践/标准的方式?
你可以存储在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
}
}