2011-04-13 17 views
38

Dada la siguiente línea de código Objective-C:romper con los largos formato NSString en varias líneas

[NSString stringWithFormat:@"\n Elapsed Time \n Battery Level: \n Torque: \n Energy Used \n Energy Regenerated:\n Cadence: \n Battery Temp: \n Motor Temp: \n Incline: \n Speed MPH: \n Speed KPH:\n Avg Speed MPH: \n Avg Speed KPH:\n Distance Miles:\n Distance Km: \n Time Date Stamp:\n"]; 

En Xcode o cualquier editor de código, es posible evitar tener una muy larga cadena que debe ser leído por desplazándose a través de él en el editor?

¿Hay alguna manera de dividirlo en varias líneas? Estoy descubriendo que si trato de hacer esto, el código no se compilará, porque el compilador llega al final de una línea y no ve la comilla de cierre (") para la cadena.

¿Alguien sabe una forma de evitar esto?

+0

Oye, se te olvidó pasar el valor de% f float @ end. Velocidad media MPH:% f \ n Velocidad media KPH: \ n ................ Incluso así me funcionó –

Respuesta

89

Sí, sí lo hay. Las cadenas adyacentes serán concatenadas para usted por el compilador.

NSString *info = [NSString stringWithFormat:@"\n Elapsed Time \n" 
         "Battery Level: \n" 
         "Torque: \n" 
         "Energy Used \n" 
         "Energy Regenerated:\n Cadence: \n" 
         "Battery Temp: \n" 
         "Motor Temp: \n" 
         "Incline: \n Speed MPH: \n" 
         "Speed KPH:\n" 
         "Avg Speed MPH: %f \n" 
         "Avg Speed KPH:\n" 
         "Distance Miles:\n" 
         "Distance Km: \n" 
         "Time Date Stamp:\n"]; 
NSLog(info); 
+0

Eso es perfecto, muchas gracias. :) – Sabobin

+1

Asegúrese de agregar '@' antes de todas las cadenas entre comillas – XJones

+2

@XJones Compilado e impreso con solo 1 @ al principio de la cadena según @Joe answere. – Sabobin

14

Esto es más de una característica interesante que una respuesta útil, pero ...

// your code goes with that indentation (1 tab = 4 spaces) 
    NSString *myString = @"first line\ 
second line\ 
third line\ 
...\ 
last line"; 
    // next lines of codes 

Pero realmente tiene a la mente la muesca, haciendo NSLog(@"%@", myString) para arriba, daría como resultado: first linesecond linethird line...last line.

Ahora consideremos el siguiente ejemplo:

// your code goes with that indentation (1 tab = 4 spaces) 
    NSString *myString = @"first line\ 
    second line\ 
    third line\ 
    ...\ 
    last line"; 
    // next lines of codes 

esto daría: first lineXsecond lineXthird lineX...Xlast line", donde los de desagradables X serían reemplazados por 4 espacios (tabulador tenía 4 espacios en este caso, y no pude conseguir el formato correcto, lo siento). Por lo tanto, el espaciado adicional realmente puede evitar que obtengas los resultados esperados.

+0

Escribí una herramienta para esto: http: //nsstringify.nateflink .com / –

Cuestiones relacionadas