私はビットバケットを使ってUIImagesを生成し、その場で作成し、UIImageViewのイメージを交換します。 UIImageViewの画像を直接編集する方法はありますか? (すなわち、UIImageViewからUIImageを削除せずに特定のピクセルの色を変更し、それを描画し直してください)。imageWithCGImageが解放されていないか、imageNamedと同様のキャッシュにトラップされています。
現在、私はUIImageをフラッシュし、imageWithCGIImageを使用して新しいものを作成し、 UIImageViewに渡します。これは機能します。 MemLeaksは表示されません。しかし、約100回の画像交換の後、iPhone(3Gs)ではクラッシュします。 Cache'nの問題?キャッシュが解放されない場合、メモリの合計が電話機の限界に達しているように見えますが、Simulatorは各イメージスワップでメモリ消費を表示しません。漏れなく平らに保たれます。
注:topologyImage配列はRGBAピクセルバケットです。 REF変数は解放されません。そうしようとするたびに、次のコールがクラッシュします。それがなければ、Instrumentsは漏れはないと報告します。
=========
CGColorSpaceRef colorSpaceRef=CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault | kCGImageAlphaLast;
CGColorRenderingIntent renderingIntent=kCGRenderingIntentDefault;
CGDataProviderRef provider=CGDataProviderCreateWithData(NULL,topologyImage,(I*I*4),NULL);
CGImageRef imageRef=CGImageCreate(I,I,8,4*8,4*I,colorSpaceRef,bitmapInfo,provider,NULL,false,renderingIntent);
UIImage *img=[UIImage imageWithCGImage:imageRef];
if(IMG[NDXtopo].vw) {
[IMG[NDXtopo].vw setImage:img];
}
else {
IMG[NDXtopo].vw=[[UIImageView alloc] initWithImage:img];
[master.view addSubview:IMG[NDXtopo].vw];
}
すばらしい返信ありがとうございます。 –
::迅速な返信ありがとうございます。あなたのコードにいくつか変更を加えました。無料(topologyImage)とI = 320、すべてが機能しました。 UIImageViewをUIViewとCRASHに追加しました。イメージビューは、割り当て後にビューに追加されました。次に、イメージの作成とview.imageの割り当てをループします。シミュレータで正常に動作します。 iPhoneでクラッシュします。 –
最後の投稿。 RELEASE()が追加されたので、私のコードで別のテストを実行してください。トポロジが作成され、タッチの大部分が削除されます。 84タッチは画像全体を除去し、タッチ85は新しいトポロジーマップを再生成する。 RELEASE()の前に、2番目のマップでクラッシュしました。 RELEASE()は10個のマップを通り、クラッシュしませんでした。ここに投稿する前に、私はRELEASE()のテストをして同じ結果を得ました。私は間違った順序で事をやったことがありますか? imageを作成する前に、colorSpaceRefをプロバイダの前にリリースすることは重要ですか?ありがとうございました。 –