2010-07-26 13 views
8

Tengo una bastante grande bucle que recibe una cadena, hace algo a ella, que pasa a la siguiente. Originalmente lo liberaba y luego lo reasignaba, pero pensé que era un desperdicio de recursos, pero no puedo encontrar la forma de limpiarlo para reutilizarlo.Borrado en lugar de lanzar una NSMutableString

Respuesta

18

Una forma sería [myString setString: @""].

+1

Eso es molesto, en realidad trató de que han fallado de forma y pensé que no funcionaría. Terminé dejé otra declaración que se estrelló. – Rudiger

1

La solución seleccionada se bloquea con el siguiente error:

'Intento de mutar objeto inmutable con setString:'

Esto funcionó para mí en su lugar:

self.myString = [NSMutableString stringWithString: @ ""];

asegúrese de sintetizar miCadena en su clase.

+0

de acuerdo. Establecer NSMutableString en un NSString no es bueno. El error que obtienes en Xcode 4.4 es "Tipos de punteros incompatibles que envían 'NSString *' al parámetro de tipo 'NSMutableString *'". Establecerlo con esta solución es mejor. – Joseph

+1

Me parece que esto está asignando una nueva instancia NSMutableString? ¿No es tanto un desperdicio de recursos como en la pregunta original? – ArtOfWarfare

+0

Si se obtiene el 'Intento de mutar objeto inmutable con setString:' entonces la cadena que está tratando de modificar no es un 'NSMutableString', y que está tratando con un problema diferente que "Eliminación en lugar de lanzar una NSMutableString", la título de esta pregunta. – JWWalker

Cuestiones relacionadas