不清楚发布CFDictionaryRef

时间:2013-08-14 14:30:49

标签: ios cocoa automatic-ref-counting core-foundation

我不清楚以下内存管理含义:

NSDictionary* props = (__bridge NSDictionary*) CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);

由于CGImageSourceCopyPropertiesAtIndex函数在名称中有Copy,我拥有CFDictionaryRef并且必须释放它。但是,由于它被转换为NSDictionary,我无法调用[props release]。什么是对待它的正确方法?

1 个答案:

答案 0 :(得分:8)

使用CFBridgingRelease将所有权转移到ARC

CFDictionaryRef cfDict = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
NSDictionary *dict = (NSDictionary *)CFBridgingRelease(cfDict);

否则,在完成字典后,您需要调用CFRelease