我不清楚以下内存管理含义:
NSDictionary* props = (__bridge NSDictionary*) CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
由于CGImageSourceCopyPropertiesAtIndex
函数在名称中有Copy,我拥有CFDictionaryRef并且必须释放它。但是,由于它被转换为NSDictionary
,我无法调用[props release]
。什么是对待它的正确方法?
答案 0 :(得分:8)
使用CFBridgingRelease
将所有权转移到ARC
CFDictionaryRef cfDict = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
NSDictionary *dict = (NSDictionary *)CFBridgingRelease(cfDict);
否则,在完成字典后,您需要调用CFRelease
。