2011-02-28 11 views
2

次のコードを使用して、UIWebviewでイメージを読み込みます。各画像(スクロールビューをスクロールしながら)には、画像をロードする関数が呼び出されます。問題は、最大30個の画像を連続的にスクロールしているときに、アプリケーションがクラッシュすることです。理由は何でしょうか?私の画像は1300 x 1200ピクセルです。解決策を見つけるのを手伝ってください。UIWebviewで大きな画像を読み込むのを助けますか?

- (void) loadCatalogImage 
{ 
    @try{ 
// if(imgView.image != nil) 
//  return; 
    // [global_imgProgress startAnimating]; 
    //NSLog(@"image loading at = %@, %d", baseURL, 2 + pageNo); 
    NSAutoreleasePool *pool; 
    pool = [[NSAutoreleasePool alloc] init]; 

    //NSArray *array = [global_ContentString componentsSeparatedByString:@"@@#"]; 
    NSArray *array1 = [catalogURL componentsSeparatedByString:@"&"]; 
    //NSLog(@"baseURL = %@",baseURL); 
    NSLog(@"loading catalog image(method: loadCatalogImage).......%@%@",baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:0]); 

    zoomedImageURL = [NSString stringWithFormat:@"%@%@", baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:1]]; 
// NSLog(@"Catalog ZOOM URL = %@", zoomedImageURL);//[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"]);//[[[array objectAtIndex:[[global_CatalogRef objectAtIndex:pageNo] intValue]] componentsSeparatedByString:@"##"] objectAtIndex:3]); 
    [zoomedImageURL retain]; 

    NSLog(@"aaaaaaa = %@",zoomedImageURL); 
    [webView loadRequest: 
     [NSURLRequest requestWithURL: 
      [NSURL URLWithString: 
       [NSString stringWithFormat:@"%@%@",baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:1] 
       ] 
      ]] 
     ]; 

    } 
} 
+0

コンソール上でスタックトレースまたはクラッシュ情報を取得していますか。あなたのプロジェクトは警告を出していますか? – occulus

+0

ちょうどFYI:あなたが作成しているプールを解放していません。 – deanWombourne

+0

@Madhumitha:あなたの解決策は何でしたか? – testing

答えて

1

非常に多くのメモリを占有するのに十分なリソースを読み込むアプリケーションはクラッシュします。 Appleには大きなイメージを小さなビットに分割してロードすることに特化したいくつかのデモプロジェクトがあります。

+1

例がありますか?リンクを追加できますか? – testing

1

あなたの画像は1300 x 1200で、30枚を読み込んでいますか? may メモリが不足しています。あなたのアプリがメモリ警告を無視してメモリを奪うと、iOSシステムによってアプリが強制終了されている可能性があります。私が下の私のコメントで言及したように、その大きさの画像は約180メガになるでしょう。遠すぎる。

あなたは本当にそのような大きな画像をiPhoneアプリに配信する必要がありますか?

+0

画像のサイズは問題です..? – Madhumitha

+0

私が言ったように、あなたは記憶がなくなっているかもしれません。確かに言うことはできませんが、それは有望な候補です! – occulus

+0

どうすればこの問題を解決することができますか?これは何日も苦労しています。 – Madhumitha

0

クラッシュログを書き留めていただけますか?可能であれば、環境変数 'NSZombieEnabled'を有効にして、アプリケーションを実行し、クラッシュログを確認します。これは正確な問題を解決するのに役立ちます。ところで、なぜあなたは "zoomedImageURL"を作成して保持していますか?

+0

クラッシュすると、コンソールは「別の場所でzoomedImageURLを使用してデバッガがステータス0で終了しました」のように表示されます。 – Madhumitha

+0

コンソールは面白いことを言っていますか? "Received memory warning"などのようなものですか? – occulus

+0

@occulus:はい..同じようになっています。 – Madhumitha

関連する問題