4

にを追加するUIButtonと、メモリの問題が発生しUITableViewます。UIButton以下は、の画像を設定するための私のコードです。

UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];

しかし、メソッドのimageName:代わりにimageWithContentsOfFile:メソッドを使用すると、完全に機能します。誰かがこの問題の良い解決策を持っていますか?

4

1 に答える 1

0

imageWithContentsOfFile: vs imageNamed:

私の知識によると、

imageNamedは、画像を特別なシステムキャッシュにロードします。その後、その画像パスを使用して今後呼び出すと、ディスクから画像をリロードするのではなく、キャッシュに画像が返されます。

imageWithContentsOfFileは、指定したパスに画像をロードするだけで、キャッシュは行いません。同じ画像に対してimageWithContentsOfFileを複数回呼び出すと、メモリ内に複数のコピーが作成されます。

そして、メモリリークについては、プログラミングで多数の画像を使用しているときに、どちらを使用するのが良いかわかりません...

于 2012-11-02T13:26:40.183 に答える