Ausgabe
Ich mache eine iPhone-App mit ASCII-Kunst.
Ich habe ein Problem, wenn ich die ASCII-Grafik in Sqlite oder Plist speichere und sie in ein Etikett abrufe.
smslbl.text = @"___________\n |---------|-O\n/___________\\\n|______________|\n\\____________/";
Wenn ich die Zeichenfolge explizit wie oben gebe. Das ASCII wird korrekt angezeigt.
Aber wenn ich denselben Text aus der Datenbank abrufe und demselben Etikett zuweise, wird der gesamte Text in derselben Zeile gedruckt. Was soll ich machen?
Lösung
Entweder der Compiler oder die Laufzeit übersetzt die “\n”-Sequenzen für Sie in die Konstante NSString, die Sie dort haben. Dieses Verhalten ist nur in konstanten Zeichenfolgen wie Ihrem Beispiel zu sehen. Wenn Sie genau diese Zeichenfolge in einer Datenbank haben und sie herausziehen, wird sie nicht auf Escapes analysiert. Um dieses Verhalten zu erhalten, müssen Sie die Zeichenfolge selbst analysieren. Aber warum in diesem Fall überhaupt Escapes in der Datenbank haben? Es gibt keinen Grund, nicht einfach die Version ohne Escapezeichen in Ihre Datenbank aufzunehmen, komplett mit echten Zeilenumbruchzeichen.
Beantwortet von – Lily Ballard
Antwort geprüft von – Marilyn (FixError Volunteer)