【发布时间】:2016-05-13 15:25:48
【问题描述】:
我正在学习 Swift2/iOS 应用程序开发。我对编译前 Xcode 抛出的错误感到困惑。这是引发错误的代码:
let dotpos = display.text!.rangeOfString(".")
if dotpos != nil {
display.text = display.text!.removeRange(dotpos!)
}
抛出的错误是(在“display.text = display.text!.removeRange(dotpos!)”这一行):
无法将类型“()”的值分配给类型“字符串”?
注意:display 是一个UILabel 对象。
有人能指出我可能犯的错误吗?
【问题讨论】:
-
removeRange没有()表示的返回值 -
@vadian 因为
display.text的类型是String?(通过option+click 确认),所以不应该将返回值推断为String?吗? -
否,方法标记为
mutating,表示接收者原地变异。 -
请帮忙解决同样的错误 let textString = cell.streetAddLabel.text = NSString(format: "%@\n%@", (restaurant.address != nil ? restaurant.address! : "" ), (restaurant.crossStreet != nil ? restaurant.crossStreet! : "")) 一样! NSString print("tt (textString)") cell.streetAddLabel.text = textString // 此处出错