7

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

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

由于CGImageSourceCopyPropertiesAtIndex函数名称中有 Copy,我拥有 CFDictionaryRef 并且必须释放它。但是,由于它被转换为NSDictionary,我不能调用[props release]. 治疗这种情况的正确方法是什么?

4

1 回答 1

9

用于CFBridgingRelease将所有权转移到 ARC

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

否则,您需要在CFRelease完成字典后打电话。

于 2013-08-14T14:36:46.317 回答