2010-10-10 24 views
7

lo tanto, quiero poner una variable de instancia en un NSString así:NSString con Instancia variable

NSString * TheAnswer = (@ "La respuesta es% @ \ n", self.answer);

No estoy seguro Estoy en lo cierto o no. Pensé que NSString funcionaría como NSLog, pero aparentemente no funciona.

TheAnswer regresa, ya que sólo la variable de instancia y sin "la respuesta es"

¿Puede alguien decirme por qué y cómo solucionar este problema?

Gracias.

Respuesta

16
NSString *theAnswer = [NSString stringWithFormat:@"The answer is %@", self.answer]; 
+0

Gracias, eso funcionó. – TheAmateurProgrammer

+3

@theAmateurProgrammer: Entonces deberías aceptar su respuesta. –

0

También me gustaría señalar, además de la respuesta dj2, que NSLog es un método, no un objeto. Los objetos no se inicializan en forma de ("param1", param2) Para el caso de NSString haces lo dj2 hicieron:

NSString *theAnswer = [[NSString alloc] initWithFormat:@"The answer is %@", self.answer]; 

donde usted tiene que declarar TheAnswer como un puntero NSString, porque todos los objetos de Objective-C son punteros, y luego dice otra vez En qué clase va a asignarse (en este caso NSString), entonces dirá cómo va a inicializarlo y en este caso está usando initWithFormat: para inicializarlo.

+0

Gracias por su respuesta. Quiero preguntar qué diferencia haría si inicialice NSString o no? – TheAmateurProgrammer

+0

@theAmeratureProgrammer: en realidad, hice una pregunta después de esto, al inicializarla de esta manera no se destrabará automáticamente, pero a la inversa lo hará. Por lo tanto, elige tu elección. –

Cuestiones relacionadas