【问题标题】:Application crashing on IPAD Air only应用程序仅在 IPAD Air 上崩溃
【发布时间】:2015-03-25 11:03:38
【问题描述】:

我有一个应用程序在我尝试加载保存在 Web 视图的文档目录中的 HTML 文件时崩溃。 该应用程序仅在 IPAD air 上崩溃,在其他设备上不会崩溃。

仅当我创建一个 .ipa 文件然后打开 HTML 文件时才会出现此问题。如果我从 XCode 运行应用程序,则加载 HTML 并且应用程序不会崩溃。

当我检查崩溃日志时,它显示了

异常类型:EXC_BAD_ACCESS (SIGSEGV)

异常子类型:0x0000000000000010 处的 KERN_INVALID_ADDRESS。

请帮忙,因为我在过去 3 天里一直被这个问题困扰。

【问题讨论】:

  • 您需要发布更多信息,启用异常断点并发布出现此问题的代码。
  • 几乎可以肯定使用 NULL 指针访问数据,因为崩溃距离 0x0 有 10 个字节。正如@rckoenes 所说,您需要使用调试器来识别堆栈跟踪并发布您找到的内容。否则可能是任何东西。
  • 在 ipad 上安装应用程序后如何识别堆栈跟踪。

标签: ios ipad webview air crash


【解决方案1】:

仅当 web 视图打开 PopOver 选择器时,我在 iPad air 中遇到了同样的问题。搜索后,有时会因为某种种族或以下代码中的sourceView为nil而出现问题,所以我已经覆盖了这个方法并且它可以工作-(void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion

-(void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
{

//If sourceView is nil, do nothing

 if (viewControllerToPresent.popoverPresentationController && !viewControllerToPresent.popoverPresentationController.sourceView) {
    return;
  }

// to solve the race issue

  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_USEC), dispatch_get_main_queue(),
               ^{
                   [super presentViewController:viewControllerToPresent animated:flag completion:completion];
               });

  }

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多