Я пытаюсь объединить четыре изображения, чтобы сделать его одним uiimage. Но когда я собираюсь делать CFRelease, он рушится. Если я этого не сделаю, это приведет к утечке памяти и сбою. Как это можно решить?CFRelease, вызывающий крах в приложении iPad
См. Ниже мой код.
referenceView.frame = CGRectMake(0, 0, 1024, 768);
referenceView.hidden = NO;
[self.view insertSubview:referenceView belowSubview:selfView];
imgView1.image = delegate.imageCroped;
imgView2.image = [UIImage imageNamed:@"videobg.png"];
imgView3.image = [UIImage imageNamed:@"videochar.png"];;
imgView4.image = smileView.image;
imgView1.frame = CGRectMake(456, 311, delegate.imageCroped.size.width-30.8, delegate.imageCroped.size.height-40);
imgView2.frame = CGRectMake(0, 0, 1024, 768);
imgView3.frame = CGRectMake(392, 187, imgView3.image.size.width, imgView3.image.size.height);
imgView4.frame = CGRectMake((smileView.frame.origin.x-((smileView.frame.origin.x > 530) ? 30 : 15)), (smileView.frame.origin.y+((smileView.frame.origin.y <= 307) ? 95 : 50)), smileView.frame.size.width, smileView.frame.size.height);
[referenceView addSubview:imgView1];
[referenceView addSubview:imgView2];
[referenceView addSubview:imgView3];
[referenceView addSubview:imgView4];
UIGraphicsBeginImageContext(referenceView.bounds.size);
[referenceView.layer renderInContext:UIGraphicsGetCurrentContext()];
CGImageRef finalImage = (CGImageRef)(UIGraphicsGetImageFromCurrentImageContext());
UIGraphicsEndImageContext();
[referenceView removeFromSuperview];
[imgView1 removeFromSuperview];
[imgView2 removeFromSuperview];
[imgView3 removeFromSuperview];
[imgView4 removeFromSuperview];
UIImage *resizedImage = [UIImage imageWithCGImage:finalImage];
CFRelease(finalImage);
return resizedImage;
}
@catch (NSException *exception) {
}
И я получаю следующую ошибку. Как я могу исправить эту проблему? Мой проект находится в ARC.
* - [UIImage _cfTypeID]: сообщение, отправленное высвобождены например 0x1e88dce0
Да, я пробовал то же самое, и он дает краху между бегущей петлей. Журнал сбоев, показывающий «Утечка памяти приема». Пожалуйста помоги. – gaurav
Нужна дополнительная информация: если вы изменили код, как было предложено, и вы рухнули, тогда что-то еще не так. –