当我将HTML字符串(大数据)加载到WebView中时,iPhone应用程序崩溃了

时间:2012-07-06 16:18:52

标签: iphone ios objective-c uiwebview

我有一个Webview,我尝试发布大量数据,大约20 MB,其中包括图像。我已将所有内容收集到一个字符串中,并将该特定字符串传递给webview。当字符串大小增加时出现问题。如果字符串的大小较小,它可以正常工作。

我通过调试检查,控件到达WebViewDidFinishLoading委托方法。完全加载的字符串会上传,但应用程序会在几秒钟内崩溃。可能是什么原因?请帮帮我!我一直在敲打马头。

4 个答案:

答案 0 :(得分:1)

你可能会耗尽太多内存。 iOS杀死了这样的应用程序。除了加载如此庞大的HTML之外,UIWebView本身也存在内存问题。它被指责在缓存数据(图像等)时占用了太多内存。

也许清空缓存可能有所帮助。在didFinishLaunchingWithOptions试试这个 -

 NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
 [NSURLCache setSharedURLCache:sharedCache];
 [sharedCache release];

此外,当您收到内存警告时,请执行此操作 -

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
}

您只是清除缓存以释放内存。

如果这也不起作用,那么我建议您找出将HTML分成多个页面或以其他方式呈现数据的方法。

答案 1 :(得分:1)

我在一个应用程序中遇到了这个问题。请检查以下链接以获取解决方案。我希望它运作良好。 https://stackoverflow.com/a/56424953/8259188

答案 2 :(得分:0)

使用工具来分析您的应用。你很有可能只是内存耗尽 - 对于iOS应用来说,20MB是相当多的,如果你从部分构建那个字符串,你可能会复制很多较小的字符串。了解您的应用在崩溃时使用的内存量会很有用。

答案 3 :(得分:0)

你是在启动应用程序的时候做的吗?如果是这样,可能需要很长时间才能启动应用程序并导致看门狗计时器终止该应用程序。