2013-08-14 2 views
4

Je suis pas clair sur les implications de la gestion de la mémoire de ce qui suit:Incertain sur la libération CFDictionaryRef

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

Depuis la fonction CGImageSourceCopyPropertiesAtIndex a Copier dans le nom, je possède le CFDictionaryRef et doit le libérer. Cependant, comme il est converti en NSDictionary, je ne peux pas appeler [props release]. Quelle est la bonne façon de traiter cela?

+0

Utilisez-vous ARC? –

+0

Oui, en utilisant ARC. – davidm

Répondre

7

Utilisez CFBridgingRelease pour transférer la propriété dans ARC

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

Sinon, vous devrez appeler CFRelease lorsque vous avez terminé avec le dictionnaire.

Questions connexes