Ipad 如何解决错误“EXC\u错误访问”
我试图根据用户在picker上选择的值调整图像大小 为此,我目前使用以下代码:Ipad 如何解决错误“EXC\u错误访问”,ipad,Ipad,我试图根据用户在picker上选择的值调整图像大小 为此,我目前使用以下代码: - (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)targetSize { CGRect frame; UIImage * newImage; newImage = image; frame = frontImageView.frame; frame.size.width = targetSi
- (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)targetSize {
CGRect frame;
UIImage * newImage;
newImage = image;
frame = frontImageView.frame;
frame.size.width = targetSize.width;
frame.size.height = targetSize.height;
frontImageView.frame = frame;
// the pixels will be painted to this array
CGImageRef imageRef = [newImage CGImage]; (APP crash at this point)
CGFloat height = targetSize.height;
CGFloat Width = targetSize.width;
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
pixels = (uint32_t *) malloc(targetSize.width * targetSize.height * sizeof(uint32_t));
// clear the pixels so any transparency is preserved
memset(pixels, 0, Width * height * sizeof(uint32_t));
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(pixels, Width, height, 8, Width * sizeof(uint32_t), colorSpace,
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
CGContextDrawImage(bitmap, CGRectMake(0, 0, Width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:ref];
CGContextRelease(bitmap);
CGImageRelease(ref);
CGImageRelease(newImage);
return result;
}
如果我调整一个图像的大小,第一次调整25%,例如没有崩溃。但随后,错误exec\u BAD\u Access导致崩溃。
如何解决此问题?您试过调试它吗?在崩溃的行上放置一个断点,并验证newImage不是nil。我可以看到您正在将输入图像分配给newImage,您确定图像不是nil吗?您还可以尝试在启用NSZombie的情况下运行,以了解为什么您可能正在发送一个看起来像您可能正在发送的死对象。请检查您的图像是否为自动发布的对象,如果是,请先保留它,然后再以其他方法向其发送任何消息。您是否尝试过调试它?在崩溃的行上放置一个断点,并验证newImage不是nil。我可以看到您正在将输入图像分配给newImage,您确定图像不是nil吗?您还可以尝试在启用NSZombie的情况下运行,以了解为什么您可能正在发送一个看起来像您可能正在发送的死对象。请检查您的图像是否为自动发布的对象,如果是,请先保留它,然后再以其他方法向其发送任何消息。