У меня есть вид, который генерирует изображение на основе ряда слоев.У меня есть изображения для фона, миниатюры и, наконец, для наложения.Вместе он создает единый дисплей.
Кажется, что это работает мечтой, за исключением случаев, когда это не так.По-видимому, без причины я получаю EXC_BAD_ACCESS в указанной строке ниже после того, как она сгенерирована где-то между 8 и 20 изображениями.Я провел его через инструмент утечки памяти и инструмент выделения, и он не поглощает тонны памяти и не протекает.Я в полном замешательстве.
Вот соответствующий код:
- (UIImage *)addLayer:(UIImage *)layer toImage:(UIImage *)background atPoint:(CGPoint)point {
CGSize size = CGSizeMake(240, 240);
UIGraphicsBeginImageContext(size);
[background drawAtPoint:CGPointMake(0, 0)]; // <--- error here
[layer drawAtPoint:point];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
// Build the layered image -- thingPage onto thingBackground,
// then the screenshot on that, then the thingTop on top of it all.
// thingBackground, thingPage and thingTop are all preloaded UIImages.
-(UIImage *)getImageForThing:(Thing *)t {
[self loadImageCacheIfNecessary];
if (!t.screenshot) {
return [UIImage imageNamed:@"NoPreview.png"];
} else {
UIImage *screenshot = t.screenshot;
UIImage *currentImage = [self addLayer:thingPage toImage:thingBackground atPoint:CGPointMake(0, 0)];
currentImage = [self addLayer:screenshot toImage:currentImage atPoint:CGPointMake(39, 59)];
currentImage = [self addLayer:thingTop toImage:currentImage atPoint:CGPointMake(0, 1)];
return currentImage;
}
}
Я нигде не могу найти, что это идет не так, и я рвал на себе волосы на паручасов на это.Это последняя известная ошибка в системе, так что вы можете себе представить, как я могу ее исправить!: -)
Заранее спасибо за любую помощь.