plistの改行文字
かんばんわ。
小ネタですが、ずいぶん前にハマってしまったので記載。
plistに改行文字(\n)を含む文字列を設定してたいのですが、
いざ読み出して表示してみると「\n」がそのまま表示されてしまいました。
// info-plistのInfoStringに設定されているテキストを取得 NSString* str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"InfoString"]; label.text = str;
NSStringをstringWithFormat:で初期化すればちゃんと改行されて表示されるので、plistからの読み込みで変になっているようです。
えぇー・・・。
で、よくよく調べたら、改行文字の前に「\」がくっついてしまっているみたいです。
文字列にすると、かんばんわ\\nアルザえもんですってことね。
(何故かくっついてきた)余分なエスケープコードのせいで改行文字が認識されずに通常の文字として認識されているって感じです。
じゃあ問題を解決するのは至って簡単。
「\\n」を「\n」にしてあげれば解決します。
// info-plistのInfoStringに設定されているテキストを取得 NSString* str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"InfoString"]; // 「\\n」を「\n」に変換する str = [str stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; label.text = str;
無事改行されました。
こんなので1時間悩んだとか悔しい!ビクンビクン