将html内容写入NSString并在iphone上显示

时间:2011-01-25 02:32:12

标签: iphone-sdk-3.0

我有一个webveiw,我可以显示小的HTML值,但我有一个问题

如果这样做

NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold > <strong> Information</strong> </span></h3>";


    HTMLData= [HTMLData stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


    [web loadHTMLString:HTMLData baseURL:nil];

然后它很好的

但是如果我的NSString有一个断行就可以说

    NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold >
 <strong> Information</strong>
 </span></h3>";

然后我收到错误如何避免这个错误??? 我的错误是缺少终结者字符

2 个答案:

答案 0 :(得分:1)

要在多行中打破长NSStrings,您需要在每行的结尾和开头加上双引号:

NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold >"
    "<strong> Information</strong>"
    "</span></h3>";

修改
NSMutableString的一个例子:

NSMutableString *HTMLData = [[NSMutableString alloc] initWithCapacity:100];
[HTMLData appendString:@"<h3><span style=font-family:Helvetica-Bold >"];
[HTMLData appendString:@"<strong> Information</strong>"];
[HTMLData appendString:@"</span></h3>"];
//more appends...

//do something with HTMLData here

[HTMLData release];

initWithCapacity只是告诉最初为最初分配空间的字符数(它不是限制)。

NSMutableString也有appendFormat:方法,其工作方式与stringWithFormat:类似。

答案 1 :(得分:0)

对此的一个解决方案可能是将HTML编写为字符串。 并将该字符串显示为Label的归因字符串。

let htmlText = "<p>etc</p>"

if let htmlData = htmlText.dataUsingEncoding(NSUnicodeStringEncoding) {
    do {
        someLabel.attributedText = try NSAttributedString(data: htmlData,
            options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
            documentAttributes: nil)
    } catch let e as NSError {
        print("Couldn't translate \(htmlText): \(e.localizedDescription) ")
    }
}

参考:How to show an HTML string on a UILabel