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

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

我是 iOS 的新手:我正在创建一个简单的应用程序,我可以在其中在图像上添加绘图:并且我可以更改绘图的颜色。 . . .

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

CGBitmapContextInfoCreate: unable to allocate 1478400 bytes for bitmap data

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

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

非常感谢任何指导

最佳答案

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

您应该熟悉 Memory Management Programming Guide for Core Foundation .要点是,如果您使用 CopyCreate 一词调用函数,或者您在 Core Foundation 上调用 CFRetain(或类似方法)样式对象(即 CGContextRef),您“拥有”它,并且您有责任在某个时候配对调用 CFRelease 以放弃您的所有权。如果不这样做,对象将永远存在,最终会耗尽堆空间。

关于iOS 模拟器 - 无法为应用程序分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176808/

相关文章:

c - 访问 PCIe 设备的内部寄存器

c - 如何重新分配内部和外部数组

java - 设置 XX :MaxMetaspaceSize to the same old XX:MaxPermSize value 后垃圾收集器停止运行

android - 按下后退按钮后如何解决 IntentReceiverLeaked

ios - 子类 ClBeacon 来存储一些额外的信息

ios - 我正在尝试在快速显示 using\t 时缩进数据,但它不起作用

ios - SCLAlertView 按钮

ios - Swift:在解雇的完成处理程序中呈现 VC

memory-management - 如何配置Jmeter丢弃下载的文件?

c++ - std::map operator[] 如何导致基本数据类型的内存泄漏?