un poco tarde, pero descubrí el mismo problema y también descubrí una solución o una solución. entonces cualquiera que tropiece con esto obtendrá una respuesta :)
así que el problema es que cuando lee una cadena de un archivo, \ n será de 2 caracteres a diferencia de xcode que el compilador reconocerá \ n como uno.
así que extendieron la clase NSString así:
"NSString + newLineToString.h":
@interface NSString(newLineToString)
-(NSString*)newLineToString;
@end
"NSString + newLineToString.m":
#import "NSString+newLineToString.h"
@implementation NSString(newLineToString)
-(NSString*)newLineToString
{
NSString *string = @"";
NSArray *chunks = [self componentsSeparatedByString: @"\\n"];
for(id str in chunks){
if([string isEqualToString:@""]){
string = [NSString stringWithFormat:@"%@",str];
}else{
string = [NSString stringWithFormat:@"%@\n%@",string,str];
}
}
return string;
}
@end
Como utilizar it:
rootDict = [[NSDictionary alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourFile" ofType:@"plist"]];
NSString *string = [[rootDict objectForKey:@"myString"] newLineToString];
es rápido y sucio, tenga en cuenta que \\ n en su archivo no se reconocerá como \ n por lo que si necesita escribir \ n en el texto debe modificar el método :)
agregar saltos de línea manualmente puede funcionar si los archivos son estáticos y pocos. Pero realmente no es una solución "verdadera" (basada en código). Las únicas soluciones basadas en código son las de Mihai Damian y justAfix. – Anshu
+1 que funcionó! ¡Gracias! – Jean
Esto parece funcionar bien para mí en iOS 7 con un UILabel, sin embargo, parece que no funciona con iOS 6.Estoy usando 'option + return' en el plist, pero mi UILabel en iOS 6 no tiene el salto de línea. ¿Alguien más está viendo este comportamiento? – njkremer