tengo 2 nuevas preguntas:son NSStrings almacenados en el montón o en la pila y lo que es una buena manera de inicializar una
1) Considerar esta línea:
NSString *myString = [[NSString alloc] initWithString: @"Value"];
Había dos cosas que me aprendido, pero me gustaría la confirmación: Como me enteré, el mensaje "alloc" indica que la instancia de NSString se almacenará en la memoria "Heap". Entendí también que las variables primitivas como "caracteres" se almacenan en la memoria "apilar".
¿Quiere decir esto que:
- la instancia de NSString se almacena en la memoria de pila;
- Y que este objeto tiene un puntero iVar (cuando se llamó al método initWithString) a la cadena "Valor" de "caracteres" primitivos, que residen en la memoria de la pila? ¿Cómo funciona esto en realidad?
La segunda pregunta está directamente relacionado y hace que para mí un dilema personal (probablemente porque me falta un punto): 2) ¿Cuál de los dos enfoques le consulte y por qué ?:
NSString *myString = [[NSString alloc] initWithString: @"Value"];
NSString *myString = @"Value";
Si mi primera pregunta es confirmada, ambos enfoques deberían "al final" apuntar a los caracteres que están almacenados en la memoria de la pila. Por lo tanto, realmente no veo el propósito de usar la primera opción y molestarme con el conteo retenido.