无法将值类型 "string?" 转换为预期的参数类型 "inout string"

can not convert value type "string?" to expected argument type "inout string"

这一行self.displayResultLable.text += (title as! String)抛出错误

can not convert value type "string?" to expected argument type "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) 工作正常:

你需要这样写:

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
}

我建议您使用可选链接运算符仅在可选 (self.displayResultLable.text) 为非零时才执行文本添加:

self.displayResultLable.text? +=  (title as! String)