Soy un chico de Java que viene a Objective-C. En Java, añadir una variable a una cadena que tendría que hacer algo a lo largo de las líneas de:Añadir una cadena con la variable
someString = "This string is equal to " + someNumber + ".";
no puedo encontrar la manera de hacerlo en Objective-C embargo. Tengo un NSMutableString
que me gustaría agregar al medio de una cadena. ¿Cómo voy a hacer esto?
que he probado:
NSString *someText = @"Lorem ipsum " + someMutableString;
NSString *someText = @"Lorem ipsum " + [someMutableString stringForm];
y algunas otras cosas, ninguno de los cuales parecen funcionar. También se intercambia el +
s con ,
s.
Su gestión de la memoria está en mal estado. Es la cadena original creada por 'alloc' que necesitas liberar, pero la estás tirando (filtrándola) y reemplazándola con el resultado de' stringByAppendingString: ', que no debería ser liberada. – Chuck
Me doy cuenta de que la administración de la memoria puede confundirme aquí, pero ¿no es mi segunda afirmación que apunta al mismo bloque de memoria, en el que solo estoy reasignando el valor al valor existente más la cadena adjunta? – Trevor
No, son dos objetos diferentes en dos ubicaciones de memoria diferentes. Las NSStrings simples no pueden cambiar su valor, por lo que 'stringByAppendingString:' devuelve una nueva cadena con el valor de la cadena original más el valor agregado. – Chuck