4

我正在尝试让自定义 ClockKit 复杂功能正常工作。

  1. 我创建了一个自定义的ComplicationController符合CLKComplicationDataSource. 它被添加到 Watch Extension 的 plist 中CLKComplicationPrincipalClass

我可以在手表上选择一个复杂功能并激活它,但我只看到“---------------”而不是我的实际占位符。

我试过的

  • 我向我的 ComplicationController 添加了自定义override init(){…}并在其中放置了一个断点以进行调试。但即使在运行 Complication构建方案时,也永远不会达到这个断点。似乎我的自定义 ComplicationController 从未实例化。

  • 我确实看到了一条日志消息Extension received request to wake up for complication support.,但我不清楚这是在代码中的何处触发的。

  • 我还尝试从我的主要电话中拨打以下电话,InterfaceController以了解我的活跃并发症

    if let server = CLKComplicationServer.sharedInstance() {
        for complication in server.activeComplications {
            server.reloadTimelineForComplication(complication)
        }
    }
    

    ......但server返回零。没有并发症似乎是活跃的和重新加载。

问题

  • 如何成功连接我的自定义 ComplicationController?

    也欢迎任何额外的调试技巧。

    从手表模拟器或 iPhone 上的手表应用程序中删除并发症通常是否足够,或者您是否需要重新安装整个手表应用程序才能看到与并发症相关的更新生效?此外,当我在我的自定义 ComplicationController 中记录某些内容时,我应该只在使用 Complications 构建方案还是使用普通 Watch App 构建方案运行时才能看到它的输出?

欢迎任何寻找问题的想法。

4

1 回答 1

16

由于您实际上可以选择手表上的复杂功能,因此听起来项目明智的一切都设置正确。由于它没有达到断点,因此听起来很复杂,只是找不到您的自定义控制器。由于您使用的是 swift,因此您需要指定控制器的模块。尝试将手表应用程序列表中的 CLKComplicationPrincipalClass 值更改为:

$(PRODUCT_MODULE_NAME).ComplicationController
于 2015-12-30T22:20:37.183 回答