无法将值类型 "string?" 转换为预期的参数类型 "inout string"
can not convert value type "string?" to expected argument type "inout string"
这一行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
}
我建议您使用可选链接运算符仅在可选 (self.displayResultLable.text
) 为非零时才执行文本添加:
self.displayResultLable.text? += (title as! String)
这一行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
}
我建议您使用可选链接运算符仅在可选 (self.displayResultLable.text
) 为非零时才执行文本添加:
self.displayResultLable.text? += (title as! String)