3

画像を含む約 20 MB の膨大な量のデータを投稿しようとする Webview があります。すべてを文字列にまとめ、その特定の文字列を webview に渡しました。文字列のサイズが大きくなると問題が発生します。文字列のサイズが小さい場合は正常に機能します。

コントロールが WebViewDidFinishLoading デリゲート メソッドに到達することをデバッグで確認しました。完全にロードされた文字列がアップロードされますが、アプリケーションは数秒以内にクラッシュします。その理由は何ですか?私を助けてください!私は頭を叩いています。

4

4 に答える 4

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 を複数のページに分割する方法や、データを表示する他の方法を見つけることをお勧めします。

于 2012-07-06T16:23:48.623 に答える
0

アプリケーションの起動時にそれを行っていますか?その場合、アプリの起動に時間がかかる可能性があり、ウォッチドッグタイマーがアプリを強制終了します。

于 2012-07-06T16:44:07.527 に答える
0

Instruments を使用してアプリのプロファイリングを行います。単にメモリが不足している可能性は十分にあります。20MB は iOS アプリにはかなりの量です。その文字列をパーツか​​ら構築している場合は、小さな文字列をたくさんコピーしている可能性があります。アプリがクラッシュした時点でアプリが使用しているメモリの量を知ることは役に立ちます。

于 2012-07-06T16:22:57.330 に答える