1

我对 iOS 还很陌生:我正在创建一个简单的应用程序,我可以在其中在图像上添加绘图:并且我可以更改我正在绘制的颜色。. . .

画了一段时间后,我在 iPad 模拟器上收到以下错误

CGBitmapContextInfoCreate: unable to allocate 1478400 bytes for bitmap data

这大约是 1.5MB 。. . . 这怎么可能是个问题?我究竟做错了什么 ?

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

非常感谢任何指导

4

1 回答 1

2

你只得到ARC支持Objective-C,所以在使用不是用Objective-C. 如果您要创建许多大型对象(如 1.5 MB 位图上下文)并且从不释放这些对象,则上述内容可能会成为问题。

您应该熟悉Core Foundation 的内存管理编程指南。要点是,如果您使用单词Copyor调用函数,或者在 Core Foundation 样式对象(即 )上Create调用(或类似方法) ,则您“拥有”它,并且您有责任在某些时候配对 a致电放弃您的所有权。如果你不这样做,对象就会永远存在,最终你会耗尽堆空间。CFRetainCGContextRefCFRelease

于 2013-08-11T21:38:57.410 回答