我正在尝试使用自定义ClockKit Complication。
CLKComplicationDataSource
的自定义 ComplicationController 。它被添加到Watch Extension的plist CLKComplicationPrincipalClass
。我可以在手表上选择一个复杂功能并激活它,但我只看到" ---------------"不是我的实际占位符。
我在我的ComplicationController中添加了自定义override init(){…}
并在其中放置了一个断点用于调试。但即使运行复杂性构建方案,也永远不会达到这个断点。似乎我的自定义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
返回nil。没有并发症似乎有效并重新加载。
如何成功连接自定义ComplicationController?
欢迎任何其他调试提示。
通常足以从iPhone上的手表模拟器或手表应用程序中删除并发症,还是需要重新安装整个手表应用程序以查看有效的并发症相关更新?另外,当我在我的自定义ComplicationController中记录某些内容时,我应该只在使用Complications构建方案运行时或者使用正常的Watch App构建方案时才能看到它的输出吗?
欢迎任何寻找问题的想法。
答案 0 :(得分:10)
由于您实际上可以在手表上选择复杂功能,因此听起来就像设置正确的项目一样。由于它没有达到断点,因此听起来复杂功能无法找到您的自定义控制器。由于您使用的是swift,因此需要指定控制器的模块。尝试将watch app的plist中的CLKComplicationPrincipalClass值更改为:
$(PRODUCT_MODULE_NAME).ComplicationController