1

私のアプリケーションはUITableView. ラベルと を持つカスタム セルを使用していますUIImage。通常のスクロールでは問題なく動作します。しかし、それを長時間スクロールすると、画像が消えてしまいます。そして、ありましたerror = 24 (to many open files) in console

UIImage imageNamedGoogle から、 を使用する代わりにそれを取得しましたinitWithContentOfFile。しかし、それはうまくいきません。助けてください。


編集コメントに書かれたコードを追加する:

これは、セルに画像を追加するために使用されるコードです。

UIImage *img =[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"sms_icon" ofType:@"png"]]; [cell.img setImage:img]; [img release];

4

1 に答える 1

0

ドキュメントによると

メソッド (+ImageNamed:) は、指定された名前のイメージ オブジェクトをシステム キャッシュで検索し、存在する場合はそのオブジェクトを返します。一致する画像オブジェクトがまだキャッシュにない場合、このメソッドは指定されたファイルから画像データをロードしてキャッシュし、結果のオブジェクトを返します。

iOS 4 以降を実行しているデバイスでは、デバイスの画面のスケールが 1.0 の場合、動作は同じです。画面のスケールが 2.0 の場合、このメソッドは最初に、@2x サフィックスが付加された同じファイル名の画像ファイルを検索します。たとえば、ファイルの名前が button の場合、最初に button@2x を検索します。2x が見つかった場合は、その画像を読み込み、返された UIImage オブジェクトの scale プロパティを 2.0 に設定します。それ以外の場合は、変更されていないファイル名を読み込み、scale プロパティを 1.0 に設定します。iOS 4 以降では、ファイルが PNG 形式の場合、.PNG ファイル拡張子を指定する必要はありません。iOS 4 より前では、ファイル名の拡張子を指定する必要があります。一度しか表示されない画像ファイルがあり、システムのキャッシュに追加されないようにしたい場合は、これにより、使い捨てのイメージがシステム イメージ キャッシュから除外され、アプリのメモリ使用特性が改善される可能性があります。

于 2013-09-30T13:23:19.860 に答える