iOS模拟器 - 无法为应用程序分配内存

时间:2013-08-11 21:21:53

标签: ios memory-management memory-leaks ios-simulator

我对iOS很新:我正在创建一个简单的应用程序,我可以在图像上添加绘图:我可以改变我正在绘制的颜色。 。 。 。

绘制一段时间后,我在iPad模拟器上出现以下错误

CGBitmapContextInfoCreate: unable to allocate 1478400 bytes for bitmap data

这大约是1.5MB。 。 。 。这怎么会成为一个问题? 我究竟做错了什么 ?

我的应用程序让我在JPEG文件上绘图,Jpeg文件本身只有111KB 我在单个UIImageView中绘图所以我不认为释放对象是问题 - 是吗?

非常感谢任何指导

1 个答案:

答案 0 :(得分:2)

您只能获得ARC Objective-C的支持,因此在使用Objective-C中未编写的框架时,您需要负责内存管理。如果您正在创建许多大对象(如1.5 MB位图上下文)并且从不释放这些对象,那么您在上面描述的内容可能是一个问题。

您应该熟悉Memory Management Programming Guide for Core Foundation。要点是,如果您使用单词CopyCreate调用函数,或者在Core Foundation样式对象上调用CFRetain(或类似方法)(即{{1} }),你"拥有"它,你有责任在某个时候拨打CGContextRef来放弃你的所有权。如果你不这样做,那么这些对象会永远存在,你最终会耗尽堆空间。