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];
Dave
sumber
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];

Anthony F
sumber
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;
Andy A
sumber
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;
Adil Hussain
sumber
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];
Mohit
sumber
8

coba ini (stringWithFormat harus dimulai dengan huruf kecil)

 [NSString stringWithFormat:@"%@\n%@",string1,string2];
Madu
sumber
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

us_david
sumber
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

Chamath Jeevan
sumber
"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.

mahboudz.dll
sumber
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)"
Naishta
sumber
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>"];
iPhoneDeveloper
sumber