我正在尝试让自定义 ClockKit Complication 正常工作。
- 我创建了一个符合
CLKComplicationDataSource
的自定义 ComplicationController。它作为CLKComplicationPrincipalClass
添加到 Watch Extension 的 plist。
我可以在 watch 上选择并激活它,但我只看到“----------------”而不是我的实际占位符。
我尝试了什么
我向我的 ComplicationController 添加了自定义
override init(){…}
并在其中放置了一个断点以进行调试。但即使在运行 Complication build scheme 时,也永远不会达到这个断点。我的自定义 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?
也欢迎任何额外的调试技巧。
从 watch 模拟器或 iPhone 上的 watch 应用程序中删除复杂功能通常就足够了吗?还是您需要重新安装整个 watch 应用程序才能看到与复杂功能相关的更新生效?此外,当我在我的自定义 ComplicationController 中记录某些内容时,我应该只在使用 Complications 构建方案或正常的 Watch App 构建方案运行时看到它的输出吗?
欢迎提出任何发现问题的想法。
最佳答案
由于您实际上可以在 watch 上选择复杂功能,因此听起来所有项目都已正确设置。由于它没有达到断点,这听起来像是复杂功能无法找到您的自定义 Controller 。由于您使用的是 swift,因此您需要指定 Controller 的模块。尝试将 watch 应用的 plist 中的 CLKComplicationPrincipalClass 值更改为:
$(PRODUCT_MODULE_NAME).ComplicationController
关于ios - 如何连接和调试自定义 ClockKit Complications Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536561/