NSDictionary* result = nil;

CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)[self TIFFRepresentation], NULL);

if ( NULL == source )
{
}
else
{
    CFDictionaryRef metadataRef = CGImageSourceCopyPropertiesAtIndex (source, 0, NULL);
    if (metadataRef)
    {
        NSDictionary* immutableMetadata = (__bridge NSDictionary *)metadataRef;
        if (immutableMetadata)
        {
            result = [NSDictionary dictionaryWithDictionary : (__bridge NSDictionary *)metadataRef];
        }

        CFRelease(metadataRef);
        metadataRef = nil;
    }

    CFRelease(source);
    source = nil;
}

return result;


我在ARC中使用XCode。
当我在一个循环中的许多图像上运行它时,此代码导致我的应用程序泄漏内存。
有人知道我做错了吗?

最佳答案

将@autoreleasepool包裹在代码周围解决了该问题。图片约1.2MB

关于cocoa - CGImageSourceRef内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14715805/

10-09 09:02