NSString es realmente un clúster de clase.Eso significa que, por diversas razones, incluido el rendimiento basado en contenido y tamaño, y para admitir el puente gratuito a CFString cuando creas un NSString, en realidad puedes obtener una de muchas clases privadas que devuelven SÍ a isKindOf: cuando preguntas si es un NSString y responderá a todos los métodos en la clase NSString. Es como un protocolo, pero todos los objetos dicen y hacen y ser NSString en la API pública.
Como la documentación indica para NSString y CFString, conceptualmente es una matriz de UTF16 unichar Puede y utilizará una representación interna diferente donde presenta una ventaja para la implementación. Por lo general, el rendimiento a veces tamaño de memoria. Pero puede confiar en que le dará una matriz C de unichar cuando se le pida o cualquier otra cosa que la API prometa.
Ha tenido un largo tiempo para madurar y se ajusta internamente en casi todos los lanzamientos.
En resumen, sí, puede pensar que está respaldado por una matriz de UTF16 unichar que coincide en gran medida con la descripción de una cadena lógica en el estándar Unicode. Pero lo que hay que tener en cuenta es que no deberías preocuparte por lo que hay adentro, solo lo que te dice que está dentro.
Es una de las mejores implementaciones de Unicode. Si desea una imagen más completa de cómo funciona, puede ver (la mayoría) de la fuente de CFString en opensource.apple.com Es C y Core Foundation (orientado a objetos C) y bastante estilizado, así que no espere Comprende todo de una vez.
NSString y CFString tienen métodos para regresar y crear desde unichar. La mayoría de la gente no debería necesitarlos la mayor parte del tiempo. Si lo hace, tenga cuidado, prepárese para leer mucho y cometer errores ingenuos. Unicode es un gran tema. Manejarlo correctamente es una ciencia y un arte en ese nivel. Esa es una de las razones de NSString. Maneja muchas cosas difíciles para que no tengas que hacerlo tan a menudo, a menos que quieras o necesites hacerlo.
¿Olvidaste el @ antes de "TestString"? – newacct
Sabía que algo no se veía bien ... ¡gracias! – micmoo