1

我可以毫无问题地导入WatchKitWatchConnectivity使用各种代表,例如。WCSessionDelegate

但是当我尝试 importClockKit或 addCLKComplicationDataSource时,Xcode 会抛出诸如“不存在模块”之类的错误。

为了检查这一点,我创建了一个手表应用程序项目并检查了 ComplicationController.swift。它确实import ClockKit在源代码中。

为什么我们不能在 Xcode Playground 中测试这个 API?这不是违背了拥有游乐场的目的吗?

4

1 回答 1

4

不,你不能,原因如下。

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

  • ClockKit框架更多地是与表盘复杂功能相关的对象集合。它在操场上可用是没有意义的,因为操场本身不会有任何并发​​症。

  • 您无法在 Playground 中真正测试复杂功能,因为 Playground 中没有运行任何交互式复杂功能服务器来调用您的数据源方法。

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

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

您可以提交功能请求,要求 Apple 让您在 Playground 中以交互方式测试您的复杂控制器。

于 2016-03-14T20:51:05.740 回答