Ios 快速将HTML添加到UIWebView,表达式太复杂

Ios 快速将HTML添加到UIWebView,表达式太复杂,ios,swift,Ios,Swift,我正在向UIWebView添加一些HTML内容 这一行: generatedHtml += "<br><p style=\"font-family:'Chevin-Medium';font-size:12px;color:#505050;padding-top:0px;\">" + newsItem.entry.likes + " like this " + newsItem.entry.comments?.count + " comments</p>" 我

我正在向UIWebView添加一些HTML内容

这一行:

generatedHtml += "<br><p style=\"font-family:'Chevin-Medium';font-size:12px;color:#505050;padding-top:0px;\">" + newsItem.entry.likes + " like this " + newsItem.entry.comments?.count + " comments</p>"
我只是在对数组进行计数,我不知道如何使它不那么复杂

该对象如下所示:

public class NewsItem: NSObject {
    var entry: EntryObject = EntryObject()

}

public class EntryObject: NSObject {
    var comments: [Comment]? = []
}

newsItem.entry.comments?.count
是一个整数,您不能使用
+
将整数添加到字符串中,您应该使用字符串插值和
\()

如果错误“太复杂”仍然存在,您将不得不分解语句并使用变量,而不是直接插入表达式。

尝试通过这种方式执行此操作

var countComments : Int = 0

//Validate comment counting
if let cComments = newsItem.entry.comments?.count
{
    countComments = cComments
}

//... Some code here ...

//Devide to Conquest.
//If is easy to find... Is not hard to fix
generatedHtml += "<br>"
generatedHtml += "<p style=\"font-family:'Chevin-Medium';font-size:12px;color:#505050;padding-top:0px;\">" 
generatedHtml += "\(newsItem.entry.likes) "  
generatedHtml += "like this \(countComments) comments"    //Here you have a valid value
genetatedHtml += "</p>"
var countComments:Int=0
//验证注释计数
如果let cComments=newItem.entry.comments?.count
{
countComments=cComments
}
//... 这里有一些代码。。。
//决心征服。
//如果很容易找到。。。这并不难解决
生成的HTML+=“
” generatedHtml+=“

" generatedHtml+=“\(newsItem.entry.likes)” generatedHtml+=“like this\(countComments)comments”//这里有一个有效值 genetatedHtml+=“

但是,为什么

可能您对可选值newsItem.entry.comments?.count有问题,该值可以为零。然后,首先,验证值并确定返回的内容。优于“0”,这是一个有效值,而不是nil

分割字符串创建时,调试工作将更容易执行。您可以更好地了解错误发生的位置

也许这不是你问题的最终解决方案,而是帮助你解决问题的好方法

" like this \(newsItem.entry.comments?.count) comments</p>"
" like this " + String(newsItem.entry.comments?.count) + " comments</p>"
var countComments : Int = 0

//Validate comment counting
if let cComments = newsItem.entry.comments?.count
{
    countComments = cComments
}

//... Some code here ...

//Devide to Conquest.
//If is easy to find... Is not hard to fix
generatedHtml += "<br>"
generatedHtml += "<p style=\"font-family:'Chevin-Medium';font-size:12px;color:#505050;padding-top:0px;\">" 
generatedHtml += "\(newsItem.entry.likes) "  
generatedHtml += "like this \(countComments) comments"    //Here you have a valid value
genetatedHtml += "</p>"