内存泄漏:CGDataProviderCreateWithCopyOfData

时间:2015-09-09 01:08:32

标签: ios

我使用UIImage + Resize库在拍摄后直接调整图像大小。

我确实使用以下代码获取内存泄漏:

CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, srcSize.width, srcSize.height), imgRef);
UIImage* resizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

仪器中的CGDataProviderCreateWithCopyOfData内存泄漏。

我尝试将其添加到@autoreleasepool中,与其他StackOverflow帖子一样。

1 个答案:

答案 0 :(得分:1)

注意:您可能已经解决了问题,这个答案可供将来读者解决同样的问题。

我已经弄明白自己的实现是什么(使用GPUImage进行视频分析)。

我需要在autoreleasepool来电者的呼叫周围添加CGBitmapContextCreateImage个结果(它还会调用CGDataProviderCreateWithCopyOfData)。

    func run() {
        while (parent != nil) {
            if semaphore.acquireSemaphore(5000) {
                autoreleasepool { // Without this I was leaking images until crash.
                    parent?.analyseImage(self.sampleBuffer!, lineFinder:finder) //This calls CGBitmapContextCreateImage
                }
            }
        }
        thread = nil
    }