NSString ด้วย \ n หรือตัวแบ่งบรรทัด


100

มีใครรู้วิธีใช้ตัวแบ่งบรรทัดใน NSString บ้าง? ฉันต้องทำอะไรแบบนี้ -

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

11
คุณได้ลองสิ่งนี้จริงหรือไม่? เพราะถ้าคุณมีคุณจะได้รับคำตอบ
Dave DeLong

ไม่มันไม่ได้ผล ฉันเห็น \ n ต่อท้ายสตริง แต่เมื่อแสดงผลมันอยู่ในบรรทัดเดียวกัน
Dave

4
โปรดตรวจสอบให้แน่ใจว่าข้อความประเภท NSString ที่คุณแสดงไม่ได้ใช้การสนับสนุน HTML หากใช้การสนับสนุน HTML จะไม่ปฏิบัติต่อ \ n หวังว่าฉันจะเป็นประโยชน์ ขอบคุณ Aby
Abdul Yasin

คำตอบ:


177

ฉันเพิ่งพบปัญหาเดียวกันเมื่อโอเวอร์โหลด - คำอธิบายสำหรับคลาสย่อยของ NSObject ในสถานการณ์นี้ฉันสามารถใช้ carriage return (\ r) แทน newline (\ n) เพื่อสร้างตัวแบ่งบรรทัด

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


1
สมบูรณ์แบบ! เพียงสังเกตว่าคุณมีเครื่องหมายจุลภาคที่ไม่จำเป็นหลังจาก% @ แรก
Sam Spencer

1
@OMGPOP โปรดทราบว่าสำหรับการพัฒนา iOS คุณต้องตรวจสอบคำตอบของฉันด้านล่าง
Andy A

สมบูรณ์แบบสำหรับฉันขอบคุณมากสำหรับการแบ่งปันสิ่งนี้
swiftBoy


26

ฉันพบว่าเมื่อฉันอ่านสตริงจาก.plistไฟล์เหตุการณ์ที่เกิดขึ้น"\n"จะถูกแยกวิเคราะห์เป็น"\\n". วิธีการแก้ปัญหาสำหรับผมคือการเปลี่ยนการเกิดขึ้นของด้วย"\\n" "\n"ตัวอย่างเช่นเมื่อNSStringตั้งชื่อmyStringอ่านจาก.plistไฟล์ของฉันฉันต้องเรียก ...

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

... ก่อนที่จะกำหนดให้UILabelอินสแตนซ์ของฉัน...

myLabel.text = myString;

2
นี่คือสถานการณ์ที่แน่นอนของฉัน Adil ขอบคุณสำหรับคำตอบ!
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];


2

\ n \ r ดูเหมือนจะใช้ได้ผลสำหรับฉัน

ฉันใช้ Xcode 4.6 กับ IOS 6.0 เป็นเป้าหมาย ทดสอบบน iPhone 4S ลองดูด้วยตัวเอง

เฟิงชิว


1
นี่ไม่ใช่คำตอบ.. โปรดเขียนในความคิดเห็น
Shivaay

2

อักขระแบ่งบรรทัดสำหรับ NSString คือ \ r

วิธีใช้ที่ถูกต้อง [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ----> การกลับรถ


"StringWithFormat" ไม่ถูกต้อง ควรเป็น "stringWithFormat" (ต้องขึ้นต้นด้วยตัวพิมพ์เล็ก)
SpokaneDude

0

\nเป็นวิธีที่ดีที่สุดในการแบ่งบรรทัด \rจะทำงานด้วย \n\rหรือ\r\nใช้งานมากเกินไปและอาจทำให้เกิดปัญหาในภายหลัง โกโก้มีวรรคที่เฉพาะเจาะจงและตัวละครแบ่งบรรทัดสำหรับการใช้งานที่เฉพาะเจาะจง, NSParagraphSeparatorCharacter นี่คือแหล่งที่มาของฉันสำหรับทั้งหมดข้างต้นNSLineSeparatorCharacter


0

ใน Swift 3 นั้นง่ายกว่ามาก

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

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

หรือถ้าคุณใช้ textView

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

โพสต์มีป้ายกำกับเฉพาะสำหรับ Objective-C
dylan

0

ในกรณีที่ \ n หรือ \ r ไม่ทำงานและหากคุณกำลังทำงานกับ uiwebview และพยายามโหลด html โดยใช้แท็ก <br> เพื่อแทรกบรรทัดใหม่ อย่าเพิ่งใช้แท็ก <br> ใน NSString stringWithFormat

แทนที่จะใช้สิ่งเดียวกันโดยต่อท้าย เช่นโดยใช้ stringByAppendingString

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.