当我激活WatchApp接口控制器时。它做的第一件事是通过调用“OpenParentApplication”方法来唤醒parentApplication(或者根据文档,在后台激活它)。
但是,在我手动激活父iPhone上的应用程序之前,该方法没有响应。它还以“XXX意外退出”向我致意,这意味着当我打电话给我的主机应用程序时,由于某种原因它崩溃了。
激活后,我可以使用“OpenParentApplication”方法自由交换信息。
根据文献记载,这种方法
本质上,只要调用方法就应该唤醒父对象,而不考虑应答闭包。
我的代码是非常类型安全的,零值导致崩溃是不可能的,它可能是什么?
PS:我无法调试宿主应用程序,因为我只能在宿主应用程序启动后附加到进程,但它从未这样做过。
最佳答案
由于openParentApplication
在后台启动应用程序,因此在应用程序启动时将自动调用的许多方法将不会被调用。例如,在正常启动中,初始视图控制器将调用viewDidLoad
,viewWillAppear
,viewDidAppear
。如果这些方法中的任何一个配置了非接口元素所依赖的应用程序状态的关键方面,那么当在后台启动时,您的应用程序将面临崩溃的高风险,但如果以前在调用openParentApplication
之前手动启动过应用程序,则应用程序不会崩溃。
关于swift - Apple Watch OpenParentApplication导致父应用程序崩溃,而不是打开;必须从iOS模拟器手动激活父应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28276054/