2012-07-06 43 views
3

我有一個Web視圖,我試圖發佈大量數據,大約20 MB包含圖像。我將所有內容收集到一個字符串中,並將該字符串傳遞給webview。當字符串大小增加時出現問題。如果字符串的大小較小,它工作正常。當我將一個HTML字符串(巨大數據)加載到WebView上時,iPhone應用程序崩潰

我沒有通過調試來檢查控件是否到達WebViewDidFinishLoading委託方法。完全加載的字符串被上傳,但應用程序在幾秒鐘內崩潰。可能是什麼原因?請幫助我!我一直在敲頭腦袋。

回答

0

使用工具來分析您的應用程序。很有可能你的內存不夠用 - 對於iOS應用程序來說,20MB是相當多的,如果你是從部分開始構建字符串,那麼你可能會複製很多較小的字符串。瞭解您的應用程序在崩潰時使用了多少內存會很有用。

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分成多個頁面或其他方式來呈現數據。

+0

如何將單頁HTML分割成多頁html並將其加載到webview中,如果他想將HTML顯示爲單頁? – ViruMax 2014-09-26 05:24:44

0

你是否正在啓動應用程序?如果是這樣,它可能需要很長時間才能啓動應用程序,並導致看門狗定時器殺死該應用程序。

相關問題