为什么我不能导入ClockKit并在Xcode Playground中使用CLKComplicationDataSource?

时间:2016-03-14 19:47:12

标签: xcode swift swift-playground apple-watch-complication clockkit

我可以导入WatchKitWatchConnectivity并使用WCSessionDelegate等各种代理,没有任何问题。

但是当我尝试导入ClockKit或添加CLKComplicationDataSource时,Xcode会抛出错误,例如"没有模块存在。"

为了检查这一点,我创建了一个Watch app项目并检查了ComplicationController.swift。它在源代码中有import ClockKit

为什么我们不能在Xcode Playground中测试这个API?难道没有打败游乐场的目的吗?

1 个答案:

答案 0 :(得分:3)

不,你不能,原因如下。

  • 游乐场在iOS模拟器上运行,而不是在watchOS模拟器上运行。您想要使用或测试的内容在iOS中不可用。

  • ClockKit框架更多是与表面复杂功能相关的对象集合。因为操场本身没有任何复杂情况,所以在操场上可以使用它是没有意义的。

  • 您无法在游乐场中真正测试复杂功能,因为操场上没有可以调用您的数据源方法的交互式复杂服务器。

    并发症在后台运行,由并发症服务器管理。当您的复杂功能在表盘上处于活动状态(启用)时,系统会在后台唤醒您的扩展,实例化您的数据源实例,然后获取该复杂功能所需的必要数据:

      

    您不会显式实例化您的数据源类。定义类后,在WatchKit扩展的项目设置的“常规”选项卡中指定类名。当系统需要数据时,它会实例化您的类并通过调用其init方法对其进行初始化。初始化后,它会调用相应的协议方法来收集任何所需的数据。

您可以submit a feature request要求Apple让您在操场上以交互方式测试您的并发症控制器。