un peu en retard, mais j'ai découvert le même problème et j'ai également découvert un correctif ou une solution de contournement. Donc le problème est lorsque vous lisez une chaîne à partir d'un fichier, \ n sera 2 caractères contrairement à xcode le compilateur reconnaîtra \ n comme un.
donc j'étendu la classe NSString comme ceci:
"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
Comment utiliser il:
rootDict = [[NSDictionary alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourFile" ofType:@"plist"]];
NSString *string = [[rootDict objectForKey:@"myString"] newLineToString];
son rapide et sale, sachez que \ n \ n dans votre fichier ne sera pas reconnu comme \ n si vous avez besoin d'écrire \ n sur le texte, vous devez modifier la méthode :)
ajouter des sauts de ligne manuellement peut fonctionner si les fichiers sont statiques et peu nombreux. Mais pas vraiment une "vraie" solution (basée sur le code). Les seules solutions basées sur le code sont celles de Mihai Damian et justAfix. – Anshu
+1 qui a fait l'affaire! Je vous remercie! – Jean
Cela semble fonctionner très bien pour iOS 7 avec UILabel, mais cela ne semble pas fonctionner avec iOS 6.J'utilise 'option + return' dans le plist, mais mon UILabel dans iOS 6 n'a pas le saut de ligne. Est-ce que quelqu'un d'autre voit ce comportement? – njkremer