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

标签 swift string swift2 swift3

这一行 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
}

关于swift - 无法将值类型 "string?"转换为预期的参数类型 "inout string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974931/

相关文章:

ios - 从另一个 View Controller 通知 View Controller

swift - 如何在 Swift 中从 NSMutableURLRequest 获取数据?

swift - 在单个 Switch 语句中进行模式匹配和条件绑定(bind)

php - 使用正则表达式删除字符串末尾除指定标签之外的所有标签

php - 为 mysql 的 WHERE IN 准备逗号分隔的字符串

ios - FetchedResultsController 和自定义 header 部分的数据

swift - 在 For 循环中添加到字典

ios - 关闭消息 View Controller

ios - 在 Swift 中设置 UITextField 的最大字符长度

c# - 如何在 C# 中的 string.Format 中进行对齐?