CFStringRef y NSString
NSString * b = @ " b
1.CFSTR es una macro. La definición de esta macro puede ser cfstringmakeconstant o _ _ buit en _ _ cfstringmakeconststring. Si es cfstringmakeconststring, observe la implementación de cfstringmakeconststring y comprenderá que CFSTR("a") está almacenado en un diccionario global. La próxima vez que use CFSTR("a"), consulte el diccionario primero. Si existe, asigne otro valor y colóquelo en el diccionario. Entonces hay dos puntos a tener en cuenta: 1 y el objeto de cadena asignado por CFSTR no se puede liberar por sí solo la próxima vez. Utilizará un objeto salvaje
.2, el subproceso múltiple puede ser problemático porque el diccionario global está desbloqueado.
En segundo lugar, @ de NSString es algo diferente y debería ser similar a _ _ incorporado _ _ cfstringmakecontent que la cadena le permite usar. en varios subprocesos sin liberarlo usted mismo. Se puede entender que B es un objeto de liberación automática y el sistema recuperará B automáticamente. Si desea mantener B durante mucho tiempo, déjelo, pero no lo olvide. lanzamiento
Tercero, conversión mutua
CFStringRef cadena ACF =(CFStringRef)ans cadena;
ns cadena * ans cadena =( ns cadena *)ACF cadena. ;