错误:'String'无法转换为'String!'

Viv*_*ive 2 string reactive-cocoa swift

mapView.rac_valuesForKeyPath("userTrackingMode", observer: self).subscribeNextAs { 
// block handling
Run Code Online (Sandbox Code Playgroud)

我收到一个错误'String' is not convertible to 'String!'.有什么建议可能意味着什么?

我以前认为,这String!是相同的String,所以它是打开的String?...

  • Xcode 7.3.1
  • Swift 2.2
  • ReactiveCocoa 4.1.0

Sul*_*han 11

我认为编译器报告错误.

您可以使用简化表达式

let key: String! = "userTrackingMode"
Run Code Online (Sandbox Code Playgroud)

然后使用key而不是文字.

这将简化表达式,并将帮助编译器打印真正的错误.

类型推断很复杂,当编译器找不到有效的类型组合时,它可能会显示错误的错误.