Gestión de memoria: stringSithString de NSString: codificación:

Supongo que obtengo una cadena C de alguna función:

char * mystring = SomeCFunction(...);

Y soy dueño de esta cadena (soy responsable de liberarla cuando termine).

Si, en Objective-C, creo unNSString * utilizando

NSString * mynsstring = [NSString stringWithCString:mystring 
                                           encoding:NSUTF8StringEncoding];

¿Todavía soy responsable de liberar la cadena C original?

Supongo que la respuesta es sí, pero no puedo encontrar una respuesta definitiva en la documentación, y la funcionalidad del método opuesto cStringUsingEncoding), aunque sensual, me da una pausa, porque maneja la liberación de cString por ti.

Si la respuesta es sí, entonces también soy responsable de asegurarme de no liberar la cadena c antes de terminar de usar laNSString *, ¿o la función copia la cadena por mí? Pregunto esto porque la documentación parastringWithCString lo dice:

Devuelve una cadena que contiene los bytes en una matriz C dada, interpretada de acuerdo con una codificación dada.

Lo que todavía me deja preguntándome si realmente copió los bytes, o simplemente los señala internamente (y básicamente solo estoy haciendo un reparto).

Respuestas a la pregunta(2)

Su respuesta a la pregunta