can not convert value type “string?” to expected a

2019-03-27 08:33发布

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:

1条回答
Ridiculous、
2楼-- · 2019-03-27 09:23

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
}
查看更多
登录 后发表回答