此行self.displayResultLable.text += (title as! String)
错误抛出
无法转换值类型"字符串?"预期的参数类型" inout string"
这是我的代码:
if results.count > 0 {
var displayResult : String?
for books in results as! [NSManagedObject] {
if let title = books.valueForKey("title") {
self.displayResultLable.text += (title as! String)
}
}
}
这里的inout
字符串是什么?什么是最佳做法?
请注意此行self.displayResultLable.text = (title as! String)
正常工作:
答案 0 :(得分:18)
你需要这样写:
self.displayResultLable.text = self.displayResultLable.text! + title as! String
这是因为左侧是可选的而右侧不是,它们不匹配。这就是你需要写label.text = label.text + ...
的原因我还建议您将if let
更改为此内容:
if let title = books.valueForKey("title") as? String {
self.displayResultLable.text = (self.displayResultLable.text ?? "") + title
}
答案 1 :(得分:1)
我建议您仅在可选(self.displayResultLable.text
)为非null时,才使用可选链接运算符执行文本添加操作:
self.displayResultLable.text? += (title as! String)