JS 错误导致 JUCE 应用程序崩溃

JS errors crash JUCE app

开发基于 JUCE 的 React Native 应用程序,使用 iOS 设备进行测试,每当我的代码中出现 JS 错误时应用程序崩溃,我必须从 Xcode 重新启动. Reload 按钮不起作用。

该应用程序的核心是一个 JUCE 应用程序。在调试模式下,我得到以下 JS 错误异常:

exception 'NSInvalidArgumentException', reason: '-[JuceAppStartupDelegate window]: unrecognized selector sent to instance 

我理解这是因为 JuceAppStartupDelegate 没有 window 属性。我不知道的是如何实现一个 JUCEApplication 实例来响应 React Native 的调用。

所以我想出了一个解决办法。

导致崩溃的 React Native 代码在 dismiss 方法中:

- (void)dismiss
{
  self.hidden = YES;
  [self resignFirstResponder];
  [RCTSharedApplication().delegate.window makeKeyWindow]; // <-- crash here
}

我试着简单地把有问题的那一行注释掉。它有效 - 我现在可以在我的 React Native 代码中出现 JS 错误后使用“重新加载”按钮。

- (void)dismiss
{
  self.hidden = YES;
  [self resignFirstResponder];
  //[RCTSharedApplication().delegate.window makeKeyWindow];
}

编辑(2017 年 1 月)

JUCE 已在 iOS 上更新为 window 属性,从而解决了此错误。