我正在尝试定制ClockKit Complication工作.
我创建了一个符合的自定义ComplicationControllerCLKComplicationDataSource
.它被添加到Watch Extension的plist中CLKComplicationPrincipalClass
.
我可以在手表上选择一个复杂功能并激活它,但我只看到"---------------"而不是我的实际占位符.
我override init(){…}
在我的ComplicationController中添加了自定义,并在其中添加了一个断点用于调试.但即使运行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构建方案时才能看到它的输出吗?
欢迎任何寻找问题的想法.
由于您实际上可以在手表上选择复杂功能,因此听起来就像设置正确的项目一样.由于它没有达到断点,因此听起来复杂功能无法找到您的自定义控制器.由于您使用的是swift,因此需要指定控制器的模块.尝试将watch app的plist中的CLKComplicationPrincipalClass值更改为:
$(PRODUCT_MODULE_NAME).ComplicationController