繁体   English   中英

Apple Watch Complication数据应存储在哪里?

[英]Where should Apple Watch Complication data be stored?

我需要存储由主Watch应用程序(和iPhone应用程序)控制并以复杂方式显示的数据。

苹果官方文件

如果您需要获取或计算并发症数据,请在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
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM