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

nnsrf1az  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(204)

这一行self.displayResultLable.text += (title as! String)错误抛出
无法将值类型“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)这一行工作正常:

zmeyuzjn

zmeyuzjn1#

您需要改为这样编写:

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

这是因为左边是可选的,右边不是,它们不匹配。这就是为什么你需要写标签。文本=标签。文本+...
我还可以建议您将您的if let改为:

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

1rhkuytd2#

如果可选的(self.displayResultLable.text)不是nil,我建议您使用可选的链接操作符来执行文本的添加:

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

相关问题