私は約500の画像をリソースとしてアプリケーションに持っています。UIImageは一部の画像でnilを返しますか?
まず、悪いことはありますか?他にどのように保管できますか?
第二には、私はそれらをロードするとき、次のように:
for (int i=0; i < [imageArray count]; i ++)
{
IngredientObject * o = ((ImageObject*)[imageArray objectAtIndex:i]);
UIImage * img = [UIImage imageNamed:o.imageName];
.
.
.
}
はいつかそれがnilを返します。私はそれがメモリ問題であると仮定しています。実際のデバイスでのみシミュレータ上で起こるわけではないからです。それぞれの画像は小さいです...それぞれ約10kから20kですが、それでも約10megになります。私は16GBのデバイスでこれが問題になるとは思わなかった。
imageNamed:を使用せず、imageWithContentsOfFileなどの方法を使用する方がよいでしょうか。このイメージは最終的にはUIScrollerViewにあり、イメージを動的にロードする必要がある場合、スクロールのパフォーマンスが心配だったので、必要に応じてロードする方法がわからない。
何か助けていただければ幸いです。
は、限り、あなたは正しくメモリ管理を扱うように、あなたが
imageWithContentsOfFileに変更して、スクロールビューに表示されるように画像をダイナミックに読み込むことをお勧めしますか? – LilMoke
そうですね、まずそれを試してみましょう。そして、あなたの記憶がどこに行くのかを知るために漏れを実行してください。私にとっては、画像の量が少ないときには 'imageWithContentsOfFile:'が動作するように見えましたが、ファイルサイズははるかに大きかったです。 – WrightsCS
スクロールビューでイメージを動的に読み込む方法の例があります。私はそれらが画面から2〜3つのインデックス離れているときにロードしたいと思っています。 – LilMoke