Swift – can not convert value type “string?” to expected argument type “inout string”

stringswiftswift2swift3

this line self.displayResultLable.text += (title as! String) error throwing

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

Here is my code :

   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)

                        }
                    }
                }

what is the inout string here ? what is the best practice ?

Note this line self.displayResultLable.text = (title as! String) working fine:

Best Answer

You need to write it like this instead:

self.displayResultLable.text =  self.displayResultLable.text! + title as! String

It´s because of the left side is an optional and the right side is not and they don´t match. That´s why you need to write label.text = label.text +...

I can also suggest you to change your if let to this instead:

if let title = books.valueForKey("title") as? String {
   self.displayResultLable.text = (self.displayResultLable.text ?? "") + title
}