第二次进行图像处理时,iOS-App无缘无故崩溃

时间:2012-08-11 11:54:51

标签: image cocoa crash touch

我真的很困惑。我正在使用Cocoa Touch进行一些图像处理,一切运行良好。我的应用程序使用大约120MB的内存,这很好,并且根本没有泄漏,我使用Instruments检查。然而,当我第二次使用我的图像处理类的全新实例运行例程时(在删除第一个当然之后)应用程序在我的iPhone 4上崩溃。它在我的iPad上仍能正常工作3.每当我调用“CGContextDrawImage”时)“崩溃了。显然没有抛出异常或任何类似的东西。我真的不知道为什么会这样,因为应该有足够的内存。在我的iPad 3上的仪器中运行它表明从不使用超过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);

1 个答案:

答案 0 :(得分:0)

显然没有足够的记忆。也许iPad上有,但iPhone上没有。请记住,操作系统仅为您的应用程序保留一小部分物理可用RAM(0.5或1 GB),如果超过该限制,系统将终止看似有害的进程。尝试以某种方式减少应用程序的内存指纹,120 MB不是“很好”。