我正在创建一个位图上下文,在我的代码中是这样的:

bitmapData = malloc(bitmapByteCount);

context = CGBitmapContextCreate (bitmapData,
                                     pixelsWidth,
                                     pixelsHeight,
                                     8,      // bits per component
                                     bitmapBytesPerRow,
                                     colorSpace,
                                     kCGImageAlphaPremultipliedFirst);


在该方法返回CGContextRef对象之前,我认为我必须释放bitmapData。返回free(bitmapData)之前可以安全地呼叫context吗?

最佳答案

CGBitmapContextCreate的文档说:


  在iOS 4.0和更高版本以及Mac OS X中
  v10.6和更高版本,如果您可以传递NULL
  你想让Quartz为它分配内存
  位图。这将您从中解放出来
  管理自己的记忆,
  减少内存泄漏问题。


我建议您传递NULL而不是malloc指针,这样您就不必担心它的内存了。

但是,请注意CGBitmapContextCreate的名称中包含“ create”,因此按照惯例,您将拥有返回的对象。您将需要使用CFRelease()释放它。

关于iphone - 如何释放呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3776846/

10-09 16:18