NSString dengan \ n atau baris baru


100

Apakah ada yang tahu cara menggunakan jeda baris di NSString? Saya perlu melakukan sesuatu seperti ini -

[NSString stringWithFormat:@"%@,\n%@", mystring1,mystring2];

11
Apakah Anda benar-benar mencoba ini? Karena jika Anda punya, Anda akan mendapatkan jawaban Anda.
Dave DeLong

tidak, itu tidak berhasil. saya melihat \ n ditambahkan ke string tetapi ketika dirender, itu berada di baris yang sama.
Dave

4
Pastikan pesan jenis NSString yang Anda tampilkan tidak menggunakan dukungan HTML. Jika menggunakan dukungan HTML, itu tidak akan memperlakukan \ n. Semoga saya bisa membantu. Terima kasih, Aby
Abdul Yasin

Jawaban:


177

Saya baru saja mengalami masalah yang sama saat membebani-deskripsi untuk subkelas NSObject. Dalam situasi ini saya dapat menggunakan carriage return (\ r) daripada baris baru (\ n) untuk membuat baris baru.

[NSString stringWithFormat:@"%@\r%@", mystring1,mystring2];


1
sempurna! Perhatikan bahwa Anda memiliki tanda koma yang tidak diperlukan setelah% @ pertama
Sam Spencer

1
@OMGPOP, perhatikan bahwa untuk pengembangan iOS Anda juga perlu memeriksa jawaban saya di bawah ini.
Andy A

Sempurna bekerja untuk saya, terima kasih banyak telah membagikan ini.
swiftBoy

32

Jika string Anda menggunakan UIView (misalnya UILabel), Anda juga perlu mengatur jumlah baris menjadi 0

myView.numberOfLines=0;

26

Saya menemukan bahwa ketika saya membaca string dari .plistfile, kejadian "\n"diuraikan sebagai "\\n". Solusi bagi saya adalah mengganti kejadian "\\n"dengan "\n". Misalnya, diberi contoh NSStringbernamamyString read in dari .plistfile saya , saya harus memanggil ...

myString = [myString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];

... sebelum menetapkannya ke UILabelinstance saya ...

myLabel.text = myString;

2
Ini adalah skenario saya yang tepat, Adil. Terima kasih atas jawaban anda!
iOS4Life

12
NSString *str1 = @"Share Role Play Photo via Facebook, or Twitter for free coins per photo.";
NSString *str2 = @"Like Role Play on facebook for 50 free coins.";
NSString *str3 = @"Check out 'What's Hot' on other ways to receive free coins";


NSString *msg = [NSString stringWithFormat:@"%@\n%@\n%@", str1, str2, str3];

8

coba ini (stringWithFormat harus dimulai dengan huruf kecil)

 [NSString stringWithFormat:@"%@\n%@",string1,string2];

2

\ n \ r tampaknya berhasil untuk saya.

Saya menggunakan Xcode 4.6 dengan IOS 6.0 sebagai target. Diuji di iPhone 4S. Coba sendiri.

Feng Chiu


1
ini bukan jawaban .. tolong tulis ini di komentar.
Shivaay

2

Karakter pemisah baris untuk NSString adalah \ r

cara yang benar untuk digunakan [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ----> kereta kembali


"StringWithFormat" tidak valid; itu harus "stringWithFormat" (harus dimulai dengan huruf kecil 's')
SpokaneDude

0

\nadalah cara yang disukai untuk memutuskan garis. \rakan bekerja juga. \n\ratau \r\nberlebihan dan dapat menyebabkan masalah Anda nanti. Kakao, memiliki ayat tertentu dan baris istirahat karakter untuk kegunaan tertentu NSParagraphSeparatorCharacter, NSLineSeparatorCharacter. Inilah sumber saya untuk semua hal di atas.


0

Di Swift 3, ini jauh lebih sederhana

let stringA = "Terms and Conditions"
let stringB = "Please read the instructions"

yourlabel.text =  "\(stringA)\n\(stringB)"

atau jika Anda menggunakan textView

yourtextView.text =  "\(stringA)\n\(stringB)"

Posting secara khusus diberi label untuk Objective-C.
dylan

0

Jika \ n atau \ r tidak berfungsi dan jika Anda bekerja dengan uiwebview dan mencoba memuat html menggunakan tag <br> untuk memasukkan baris baru. Jangan hanya menggunakan tag <br> di NSString stringWithFormat.

Sebaliknya gunakan yang sama dengan menambahkan. yaitu dengan menggunakan stringByAppendingString

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.