Swift 无法将类型“()”的值分配给类型 'String?'

Swift cannot assign value of type '()' to type 'String?'

我正在学习 Swift2/iOS 应用程序开发。我对编译前 Xcode 抛出的错误感到困惑。这是抛出错误的代码:

let dotpos = display.text!.rangeOfString(".")
if dotpos != nil {
    display.text = display.text!.removeRange(dotpos!)
}

抛出的错误是(在 "display.text = display.text!.removeRange(dotpos!)" 行):

Cannot assign value of type '()' to type 'String?'

注意:显示是一个 UILabel 对象。

有人可以指出我可能犯的错误吗?

您需要为此检查文档 (Apple swift String link)

let dotpos = display.text!.rangeOfString(".")
if dotpos != nil {
    display.text!.removeRange(dotpos!)
}

这段代码可以工作,removeRange 函数没有 return 任何东西,文档说

mutating func removeRange(_ subRange: Range)

表示当您在文本标签上调用该方法时,文本会发生变化。

文本直接更改,不需要为更改它分配新值。