Apple Watch上的UIApplication.sharedApplication()。beginIgnoringInteractionEvents()

时间:2014-11-30 10:13:15

标签: ios swift watchkit

我无法使用

UIApplication.sharedApplication().beginIgnoringInteractionEvents()

在WatchKit扩展中,我有错误:

'sharedApplication()' is unavailable: Use view controller based solutions where appropriate instead.

还有其他选择吗?

1 个答案:

答案 0 :(得分:3)

简短的回答是:不,没有。

答案很长:

请注意,扩展程序不会在手表上执行,而是在手机上执行。因此,如果您打电话给UIApplication.sharedApplication(),它会在您的手机上返回扩展程序的应用程序!您在扩展程序中执行的所有操作都是操纵手机扩展程序的内容。唯一的例外是WatchKit方法。甚至它们基本上都是被转换为通过蓝牙发送的指令的通话,以告诉手表该做什么。在任何时候您都无法编写在手表上执行的代码!

您无法控制手表对发送给它的说明所做的事情。您基本上充当与客户交谈的服务器,您无法控制客户端。您应该尽可能少地发送指令,一旦发送完毕,您的任务就完成了,剩下的就由手表完成了。

话虽如此,您应该以一种不需要任何操纵事件传递的调用的方式仔细规划您的UI。你应该专注于简单的“如果用户点击x我做y'相互作用。

要记住的另一件事是,您的扩展程序无法与您的主iOS应用程序通信。您可以在iOS应用和手表扩展程序之间创建共享应用组,以便在它们之间共享数据,但是您无法直接与应用进行通信。如果您想使用部分应用程序逻辑,请将相关模块解压缩到一个框架中(使用Xcode 6变得非常简单)并在您的应用程序和扩展程序中使用该框架。