Comprensión de __bridge, __bridge_retained y __bridge_transfer en IOS

El problema de la conversión de CFObject y NSObject, debido a que ARC no puede administrar el ciclo de vida de Core Foundation Object, necesitamos usar las tres palabras clave de conversión de __bridge, __bridge_retained y __bridge_transfer entre Core Foundation y ARC. 

 

Documento oficial de Apple (https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):


__bridge solo realiza la conversión de tipos, pero no modifica los derechos de administración del objeto (memoria); 

__bridge_retained (CFBridgingRetain también se puede usar) convierte los objetos Objective-C en objetos Core Foundation y, al mismo tiempo, nos otorga los derechos de administración de los objetos ( memoria), seguimiento Necesidad de utilizar CFRelease o métodos relacionados para liberar el objeto; 
 

__bridge_transfer (también se puede utilizar CFBridgingRelease) convierte los objetos Core Foundation en objetos Objective-C y, al mismo tiempo, transfiere la gestión de los objetos (memoria) a ARC.

Supongo que te gusta

Origin blog.csdn.net/qq_28285625/article/details/113939839
Recomendado
Clasificación