私ははるかに複雑なプロジェクトの簡単なテストをしようとしていますが、なぜ以下のコードがクラッシュしてEXC_BAD_ACCESSエラーを出すのか困惑していますか?CGImageRefのUIImage
これはUIViewから呼び出されます。
- (void)testing {
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"ball.png" ofType:nil];
CGImageRef imageRef = [[[UIImage alloc]initWithContentsOfFile:imagePath]CGImage];
// CGImageRetain(imageRef);
UIImage *newImage = [[UIImage alloc]initWithCGImage:imageRef];
UIImageView *iv = [[UIImageView alloc]initWithImage:newImage];
[self addSubview:iv];
}
私の推測では、CGImageRefが保持されていないことですが、CGImageRetain(imageRef)を追加します。違いはありません。
このプロジェクトでは、ARCが有効になっていることにも注意してください。
EDITは、私は少しより多くのテストを行なったし、私は上記のコードのみを含む2つの基本的なプロジェクトを作成したとして、これは直接ARCに関連していることを発見しました。 ARCをオフにして最初のものは完全に機能しました。次はARCをオンにし、BAMがクラッシュして同じエラーが発生します。面白いのは、実際にログエラーが発生したのは、クラッシュ前に初めてプロジェクトを実行したときだけです。
Error: ImageIO: ImageProviderCopyImageBlockSetCallback 'ImageProviderCopyImageBlockSetCallback' header is not a CFDictionary...
素晴らしいです、今私は何が起こっているかを正確に見ています。少なくとも私は正しい道を歩いていた。おかげでロブ。 – EcksMedia