次のエラーでクラッシュに直面しています:
「CGDataProviderCreateWithCopyOfData:vm_copy failed:status1.」
複数の質問がありますので、お役に立てれば幸いです。
vm_copyのステータス1は何を表しますか?
このクラッシュは、データコピーの内部forループにブレークポイントを設定した場合にのみ発生します。次に、ブレークポイントを再開して削除します。ブレークポイントがない場合、関数は実行されますが、空白の画像が表示されます。ブレークポイントを設定しなくても、そのようなクラッシュがキャッチされ、アプリケーションが実行を停止するようにするにはどうすればよいですか?
このエラーは、CGBitmapContextCreateImageを実行したときに発生します。誰かがこれを解決する方法を知っていますか?
-(UIImage *) convertBitmapRGBA8ToUIImage:(UInt8**)img
:(int) width
:(int) height
{
CGImageRef inImage = m_inFace.img.CGImage;
UInt8*piData = calloc( width*height*4,sizeof(UInt8));
int iStep,jStep;
for (int i = 0; i < height; i++)
{
iStep = i*width*4;
for (int j = 0; j < width; j++)
{
jStep = j*4;
piData[iStep+jStep] =img[i][j];
piData[iStep+jStep+1] =img[i][j];
piData[iStep+jStep+2] = img[i][j];
}
}
CGContextRef ctx = CGBitmapContextCreate(piData,
CGImageGetWidth(inImage),
CGImageGetHeight(inImage),
CGImageGetBitsPerComponent(inImage),
CGImageGetBytesPerRow(inImage),
CGImageGetColorSpace(inImage),
CGImageGetBitmapInfo(inImage)
);
CGImageRef imageRef = CGBitmapContextCreateImage(ctx);
UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
CGContextRelease(ctx);
CGImageRelease(imageRef);
free(piData);
return finalImage;
}