2015-09-25 37 views
2

我正在向UIWebView添加一些HTML内容。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>" 

我得到:

expressions was too complex to be solved in reasonable time 

我只是在做一个计数阵列上,我不知道如何作出这样的那么复杂?

物体看起来是这样的:

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

} 

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

回答

2

newsItem.entry.comments?.count是一个整数,你可以不为整数添加到使用+一个字符串,你应该使用\()字符串插值:

" like this \(newsItem.entry.comments?.count) comments</p>" 

或者使用String初始值设定项如果您需要继续使用+

" like this " + String(newsItem.entry.comments?.count) + " comments</p>" 

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

1

尝试通过这种方式

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>" 

但是,为什么呢?

也许你有一个问题,可选值newsItem.entry.comments?.count,可以让你一个零值。然后,首先验证值并确定返回的内容。更好“0”,比

当你分割字符串创建一个有效的值,调试工作会更容易执行。您可以更好地了解发生错误的位置。

也许这不是对您的问题的确定解决方案,而是帮助您解决问题的好方法。

相关问题