我对iOS很新:我正在创建一个简单的应用程序,我可以在图像上添加绘图:我可以改变我正在绘制的颜色。 。 。 。
绘制一段时间后,我在iPad模拟器上出现以下错误
CGBitmapContextInfoCreate: unable to allocate 1478400 bytes for bitmap data
这大约是1.5MB。 。 。 。这怎么会成为一个问题? 我究竟做错了什么 ?
我的应用程序让我在JPEG文件上绘图,Jpeg文件本身只有111KB 我在单个UIImageView中绘图所以我不认为释放对象是问题 - 是吗?
非常感谢任何指导
答案 0 :(得分:2)
您只能获得ARC
Objective-C
的支持,因此在使用Objective-C
中未编写的框架时,您需要负责内存管理。如果您正在创建许多大对象(如1.5 MB位图上下文)并且从不释放这些对象,那么您在上面描述的内容可能是一个问题。
您应该熟悉Memory Management Programming Guide for Core Foundation。要点是,如果您使用单词Copy
或Create
调用函数,或者在Core Foundation样式对象上调用CFRetain
(或类似方法)(即{{1} }),你"拥有"它,你有责任在某个时候拨打CGContextRef
来放弃你的所有权。如果你不这样做,那么这些对象会永远存在,你最终会耗尽堆空间。