การแทนที่เอนทิตี HTML
เนื่องจากคุณกำลังบันทึกข้อมูลจาก WebService คุณจึงใช้ หมวดหมู่ NSString สำหรับ HTML ได้ ตามที่อธิบายไว้ในโพสต์นี้: Objective-C: วิธีแทนที่ HTML เอนทิตี?
(เอนทิตี Html มีลักษณะดังนี้: ‘
- ข้อมูลเพิ่มเติมเกี่ยวกับ wikipedia)
วิธีการที่มีอยู่ในหมวดหมู่คือ:
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
การตอบกลับความคิดเห็น
[NSAttributedString initWithHTML: documentAttributes:]
เริ่มต้นและส่งกลับวัตถุ NSAttributedString ใหม่จาก HTML ที่มีอยู่ในวัตถุข้อมูลที่กำหนด
NSData* htmlData = [yourHTMLString dataUsingEncoding:NSUTF8StringEncoding]
NSAttributedString* theAttributedString = [[NSAttributedString alloc] initWithHTML:htmlData documentAttributes:NULL];
ฉันใช้สิ่งนี้ตลอดเวลาและทำงานได้อย่างสมบูรณ์แบบ ฉันยังสร้างมาโครด้วย:
#define html2AttributedString(htmlString) \
[[[NSAttributedString alloc] initWithHTML:[(htmlString) dataUsingEncoding:NSUTF8StringEncoding] \
documentAttributes:NULL] autorelease]
การใช้งาน:
NSAttributedString* attributedString = html2AttributedString(yourNSString);
จากนั้น คุณสามารถสร้างมาโครสำหรับสี การจัดตำแหน่ง แบบอักษร ฯลฯ...
สำหรับ iOS คุณสามารถดูหน้านี้ ซึ่งมีให้ คุณเป็นคนทดแทน
วิธีการ initWithHTML ของเรามีเป้าหมายที่จะจับคู่ผลลัพธ์จากเวอร์ชัน Mac ได้อย่างสมบูรณ์แบบ สิ่งนี้เป็นไปได้ที่จะบรรลุผลสำเร็จสำหรับตัวละคร และฉันมีการทดสอบหน่วยเพื่อให้แน่ใจว่าสิ่งนี้จะสมบูรณ์แบบอยู่เสมอ มีหลายสิ่งที่ต้องทำแตกต่างกันเล็กน้อยบน iOS เพื่อให้ได้รูปลักษณ์ที่เหมือนกันเกี่ยวกับคุณลักษณะต่างๆ ฉันจะไม่รบกวนคุณด้วยรายละเอียดที่นั่น
person
Jean
schedule
25.03.2013
\u00f3
ในตัวอักษรสตริงจะได้รับการประเมิน ณ เวลาคอมไพล์ หากคุณมีข้อมูลรันไทม์ที่มี Escape เหล่านี้ ระบบจะไม่ตีความข้อมูลเหล่านั้น และ‘
ไม่ใช่แม้แต่การหลีกเลี่ยงสตริง มันเป็นเอนทิตี HTML - person Lily Ballard   schedule 26.03.2013