【发布时间】:2017-11-23 06:49:55
【问题描述】:
我正在尝试习惯 iOS 的 CGContextRef 图形上下文,但无法找到以下问题的答案。
当您使用CGBitmapContextCreate() 创建位图上下文时,您可以选择在其data 参数中传递预分配的缓冲区或NULL。第二种情况:
如果您希望此函数为位图分配内存,请传递 NULL。 这使您无需管理自己的内存,从而减少内存 泄漏问题。
好的,这似乎是一个很好的方法。但苹果的文档缺少的是对以下时刻的清晰解释:
-
什么时候在您将
NULL传递给CGBitmapContextCreate()的情况下,data缓冲区会被释放?当你发生这种情况是否正确 使用CGContextRelease()释放上下文? - 相反,当您将指针传递给预分配的缓冲区时
到
CGBitmapContextCreate(),是否安全假设在调用之后CGContextRelease(),您仍然有有效的(在某些情况下没有损坏 方式)位图在你的缓冲区?或者您不能在CGContextRelease()调用之后使用生成的位图?
有经验的人可以分享他们对这件事的了解吗?
【问题讨论】:
标签: ios objective-c iphone memory-management bitmap