0

我想有条件地在requestedUpdateDidBegin函数中重新加载我的活动并发症,或者实际上告诉ClockKit在当前时间线条目结束前 15 分钟设置下一次检查,但我怎么能在不知道当前并发症的情况下做到这一点?

这是我正在尝试做的事情:

    if let complications = CLKComplicationServer.sharedInstance().activeComplications {
        for item in complications {
            // Get timeline entry and template used?
        }
    }

对于当前的并发症,我只能获得家庭,但没有其他信息,如时间线日期或使用的模板。有没有办法得到这个?

4

1 回答 1

1

并发症服务器从您的并发症控制器请求数据,但它并非旨在向您提供其时间线数据。您可以从服务器中找到的所有信息都是最早和最晚的时间旅行日期。

您必须首先从用于创建时间线条目的原始数据中获取时间线详细信息。

至于在最后一个条目结束前 15 分钟安排更新,您可以非常轻松地将其安排为先前重新加载请求的一部分。复杂服务器请求的最后一件事(在重新加载或延长时间线之后)是下一个更新日期。

由于复杂服务器刚刚询问您在 中的未来时间线条目getTimelineEntriesForComplication:afterDate:,您可以记下最后一个时间线条目的日期,将其偏移 15 分钟,然后在getNextRequestedUpdateDateWithHandler瞬间被调用时返回该新日期。

于 2016-03-24T02:45:28.950 回答