twilight2 twilight2 - 1 month ago 9
Swift Question

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

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:

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
}