我在这里真的很困惑。我正在 Cocoa Touch 中进行一些图像处理,一切正常。我的应用程序使用了大约 120MB 的内存,这很好,而且完全没有泄漏,我使用 Instruments 进行了检查。但是,当我使用图像处理类的全新实例(当然在删除第一个实例之后)第二次运行例程时,应用程序在我的 iPhone 4 上崩溃。它在我的 iPad 3 上仍然可以正常工作。每当我调用“CGContextDrawImage( )" 是崩溃。显然没有抛出异常或类似的东西。我真的不知道为什么会这样,因为应该有足够的可用内存。在我的 iPad 3 上的 Instruments 中运行它表明它从不使用超过 120MB 的内存。
请在下面找到导致崩溃的代码。同样,它只会在第二次执行此操作时崩溃,并且仅在我的 iPhone 4 上崩溃。
CGImageRef imageref = [image1 CGImage];
uint8_t *inBitmap1 = (uint8_t *) malloc(vectorsizeI);
CGContextRef context1 = CGBitmapContextCreate(inBitmap1, width, height, bitsPerComponent, bytesPerRowI, colorSpace, kCGImageAlphaNoneSkipFirst);
CGContextDrawImage(context1, CGRectMake(xOffset1, yOffset1, imwidth, imheight), imageref);