Xcode 4.5.2のアプリケーションがあり、ARCを使用しています。私のアプリケーションは、コンパイラの警告やエラーなしでビルドおよび実行されていますが、アプリケーションがバックグラウンドに移行してからフォアグラウンドに戻ると(特に、長期間が経過した後)、アプリがクラッシュします。私はiOSにかなり慣れておらず、クラッシュレポートを分析し、クラッシュを象徴することを際限なく試みてきましたが、これまでのところ、問題の手がかりを集めることに失敗しています。ただし、プロジェクトを再度開いたときに突然、コード行(ずっとそこにあった)に青いコンパイラ警告が表示されるようになりました:メモリ(Core Foundation / Objective C)オブジェクトの潜在的なリーク。 このコードがARCの使用状況でこの警告を生成している理由も、突然表示された理由もわかりません。これはクラッシュの問題に関連している可能性があると思いますが、なぜこのエラーが発生するのかわからないため、修正方法がわかりません。
問題が発生しているコードは次のとおりです。
- (void) cropPhoto:(UIImage *)originalImage inImageView:(UIImageView *)imageView atXPoint:(int)x atYPoint:(int)y withWidthSize:(int)width withHeightSize:(int)height
{
CGSize size = [originalImage size]; //gets size of Facebook photo
[imageView setFrame:CGRectMake(0, 0, size.width, size.height)];
[self.view addSubview:imageView]; //adds imageView to view
CGRect rect = CGRectMake (size.width / 4, size.height / 4 ,
(size.width / 1), (size.height / 2));
//THIS NEXT LINE GIVES THE COMPILER WARNING!!
[imageView setImage:[UIImage
imageWithCGImage:CGImageCreateWithImageInRect([originalImage CGImage], rect)]];
[imageView setFrame:CGRectMake(x, y, width, height)];
[self.view addSubview:imageView];
}
任意のヘルプやガイダンスをいただければ幸いです。